Skip to content

Exectuion and optimization tracing harness for testing - #7814

Open
AdamGS wants to merge 15 commits into
developfrom
adamg/execution-tests
Open

Exectuion and optimization tracing harness for testing#7814
AdamGS wants to merge 15 commits into
developfrom
adamg/execution-tests

Conversation

@AdamGS

@AdamGS AdamGS commented May 6, 2026

Copy link
Copy Markdown
Contributor

Summary

Introduces an internal tracing API that enables testing execution and optimization flows with snapshot testing! Just wrap your code into a callaback and call trace_op, and you get back both the result and a snapshot you can assert.

For example:

    #[test]
    fn trace_optimize_reduce_fixpoint() -> VortexResult<()> {
        let values = PrimitiveArray::from_iter([0i32, 1, 2, 3]).into_array();
        let filter =
            FilterArray::try_new(values.clone(), Mask::new_true(values.len()))?.into_array();

        let traced = trace_op(|| filter.optimize())?;

        assert!(traced.output.is::<Primitive>());
        assert_arrays_eq!(traced.output, values);
        insta::assert_snapshot!(traced.trace.to_string(), @r"
            optimize root=vortex.filter(i32, len=4) session=false
            reduce TrivialFilterRule: vortex.filter(i32, len=4) -> vortex.primitive(i32, len=4)
            done output=vortex.primitive(i32, len=4)
        ");

        Ok(())
    }

The API for tests is pretty nice, internally there are still improvements that can be made here, but this is a good step towards building more confidence and making the execution model clearer.

@AdamGS AdamGS added the changelog/feature A new feature label May 6, 2026
@AdamGS
AdamGS force-pushed the adamg/execution-tests branch from 1520af8 to 51759b3 Compare May 6, 2026 14:41
@codspeed-hq

codspeed-hq Bot commented May 6, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 1841 untouched benchmarks
⏩ 55 skipped benchmarks1


Comparing adamg/execution-tests (8ead1e8) with develop (e58fb58)

Open in CodSpeed

Footnotes

  1. 55 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

@AdamGS
AdamGS force-pushed the adamg/execution-tests branch 7 times, most recently from 2376559 to e9f08fe Compare May 11, 2026 11:28
@AdamGS
AdamGS requested review from gatesn and joseph-isaacs May 11, 2026 11:51
@AdamGS
AdamGS marked this pull request as ready for review May 11, 2026 11:56
Comment thread vortex-array/src/executor.rs Outdated
@joseph-isaacs joseph-isaacs added the action/benchmark Trigger full benchmarks to run on this PR label May 18, 2026
@github-actions github-actions Bot removed the action/benchmark Trigger full benchmarks to run on this PR label May 18, 2026
@github-actions

github-actions Bot commented May 18, 2026

Copy link
Copy Markdown
Contributor

Polar Signals Profiling Results

Latest Run

Status Commit Job Attempt Link
🟢 Done 8c3e823 1 Explore Profiling Data
Previous Runs (2)
Status Commit Job Attempt Link
🟢 Done e9f08fe 2 Explore Profiling Data
🟢 Done e9f08fe 1 Explore Profiling Data

Powered by Polar Signals Cloud

@github-actions

github-actions Bot commented May 18, 2026

Copy link
Copy Markdown
Contributor

Benchmarks: PolarSignals Profiling

Vortex (geomean): 1.106x ❌

How to read Verdict and Engines
  • Verdict: Overall PR-level signal after subtracting baseline drift estimated from Parquet control rows. It can be Likely improvement, Likely regression, or No clear signal.
  • Engines: Per-engine attribution. DataFusion is compared against DataFusion/Parquet controls; DuckDB is compared against DuckDB/Parquet controls. This answers whether each engine improved or regressed independently.
  • Confidence: Based on directional consistency, share of rows above the noise floor, and control-run noise.

datafusion / vortex-file-compressed (1.106x ❌, 0↑ 5↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
polarsignals_q00/datafusion:vortex-file-compressed 121880270 113559708 1.07
polarsignals_q01/datafusion:vortex-file-compressed 279829918 270238272 1.04
polarsignals_q02/datafusion:vortex-file-compressed 25183046 24077410 1.05
polarsignals_q03/datafusion:vortex-file-compressed 🚨 317752536 263182881 1.21
polarsignals_q04/datafusion:vortex-file-compressed 🚨 10126654 8890594 1.14
polarsignals_q05/datafusion:vortex-file-compressed 🚨 15243431 13097760 1.16
polarsignals_q06/datafusion:vortex-file-compressed 18948308 17905822 1.06
polarsignals_q07/datafusion:vortex-file-compressed 🚨 15158408 13222374 1.15
polarsignals_q08/datafusion:vortex-file-compressed 415694761 400129744 1.04
polarsignals_q09/datafusion:vortex-file-compressed 🚨 13025401 11129599 1.17

No file size changes detected.

@github-actions

Copy link
Copy Markdown
Contributor

File Sizes: PolarSignals Profiling

No file size changes detected.

@github-actions

github-actions Bot commented May 18, 2026

Copy link
Copy Markdown
Contributor

Benchmarks: FineWeb NVMe

Verdict: No clear signal (low confidence)
Attributed Vortex impact: -1.8%
Engines: DataFusion No clear signal (-0.5%, low confidence) · DuckDB No clear signal (-3.0%, low confidence)
Vortex (geomean): 0.981x ➖
Parquet (geomean): 0.999x ➖
Shifts: Parquet (control) -0.1% · Median polish -0.5%

How to read Verdict and Engines
  • Verdict: Overall PR-level signal after subtracting baseline drift estimated from Parquet control rows. It can be Likely improvement, Likely regression, or No clear signal.
  • Engines: Per-engine attribution. DataFusion is compared against DataFusion/Parquet controls; DuckDB is compared against DuckDB/Parquet controls. This answers whether each engine improved or regressed independently.
  • Confidence: Based on directional consistency, share of rows above the noise floor, and control-run noise.

datafusion / vortex-file-compressed (0.985x ➖, 0↑ 0↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
fineweb_q00/datafusion:vortex-file-compressed 4783678 4826540 0.99
fineweb_q01/datafusion:vortex-file-compressed 33727070 34945719 0.97
fineweb_q02/datafusion:vortex-file-compressed 37670984 38251437 0.98
fineweb_q03/datafusion:vortex-file-compressed 58392457 57819391 1.01
fineweb_q04/datafusion:vortex-file-compressed 273336971 274561473 1.00
fineweb_q05/datafusion:vortex-file-compressed 216211253 223027297 0.97
fineweb_q06/datafusion:vortex-file-compressed 48042929 49339305 0.97
fineweb_q07/datafusion:vortex-file-compressed 55336883 56179044 0.99
fineweb_q08/datafusion:vortex-file-compressed 21876154 22025544 0.99
datafusion / vortex-compact (0.992x ➖, 0↑ 0↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
fineweb_q00/datafusion:vortex-compact 5300859 5322727 1.00
fineweb_q01/datafusion:vortex-compact 96812989 98913150 0.98
fineweb_q02/datafusion:vortex-compact 104877355 103022685 1.02
fineweb_q03/datafusion:vortex-compact 875319529 872328144 1.00
fineweb_q04/datafusion:vortex-compact 914458461 918813196 1.00
fineweb_q05/datafusion:vortex-compact 820448334 831053123 0.99
fineweb_q06/datafusion:vortex-compact 467212312 465453639 1.00
fineweb_q07/datafusion:vortex-compact 485434957 483955870 1.00
fineweb_q08/datafusion:vortex-compact 20604774 21800985 0.95
datafusion / parquet (0.994x ➖, 0↑ 0↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
fineweb_q00/datafusion:parquet 6867763 6824818 1.01
fineweb_q01/datafusion:parquet 285255975 301604652 0.95
fineweb_q02/datafusion:parquet 288112033 297577428 0.97
fineweb_q03/datafusion:parquet 302043563 288150687 1.05
fineweb_q04/datafusion:parquet 304357467 302299546 1.01
fineweb_q05/datafusion:parquet 296541344 296388885 1.00
fineweb_q06/datafusion:parquet 286358823 301704042 0.95
fineweb_q07/datafusion:parquet 282301034 275932597 1.02
fineweb_q08/datafusion:parquet 275947658 276026863 1.00
duckdb / vortex-file-compressed (0.958x ➖, 2↑ 0↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
fineweb_q00/duckdb:vortex-file-compressed 3547260 3558024 1.00
fineweb_q01/duckdb:vortex-file-compressed 32580795 33926524 0.96
fineweb_q02/duckdb:vortex-file-compressed 39038305 38142731 1.02
fineweb_q03/duckdb:vortex-file-compressed 🚀 113350735 127042907 0.89
fineweb_q04/duckdb:vortex-file-compressed 269063315 266305793 1.01
fineweb_q05/duckdb:vortex-file-compressed 210947383 217624753 0.97
fineweb_q06/duckdb:vortex-file-compressed 49662048 53170836 0.93
fineweb_q07/duckdb:vortex-file-compressed 51823992 53351423 0.97
fineweb_q08/duckdb:vortex-file-compressed 🚀 20222979 23084391 0.88
duckdb / vortex-compact (0.989x ➖, 0↑ 0↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
fineweb_q00/duckdb:vortex-compact 4104501 4144150 0.99
fineweb_q01/duckdb:vortex-compact 95493784 103474051 0.92
fineweb_q02/duckdb:vortex-compact 107982791 113826859 0.95
fineweb_q03/duckdb:vortex-compact 843476712 852311686 0.99
fineweb_q04/duckdb:vortex-compact 899427715 896384725 1.00
fineweb_q05/duckdb:vortex-compact 803504554 807554140 0.99
fineweb_q06/duckdb:vortex-compact 463904194 460885504 1.01
fineweb_q07/duckdb:vortex-compact 479941567 477637835 1.00
fineweb_q08/duckdb:vortex-compact 19635660 18855704 1.04
duckdb / parquet (1.003x ➖, 0↑ 0↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
fineweb_q00/duckdb:parquet 31190329 31060527 1.00
fineweb_q01/duckdb:parquet 86632024 83544947 1.04
fineweb_q02/duckdb:parquet 84635447 84910636 1.00
fineweb_q03/duckdb:parquet 316264598 314223169 1.01
fineweb_q04/duckdb:parquet 445722211 446598601 1.00
fineweb_q05/duckdb:parquet 414234820 413580845 1.00
fineweb_q06/duckdb:parquet 204215569 202870507 1.01
fineweb_q07/duckdb:parquet 216614524 215241939 1.01
fineweb_q08/duckdb:parquet 31813268 32634214 0.97

File Size Changes (1 files changed, -0.0% overall, 0↑ 1↓)
File Scale Format Base HEAD Change %
sample.vortex 1.0 vortex-file-compressed 1.43 GB 1.43 GB 487.69 KB -0.0%

Totals:

  • vortex-compact: 1.23 GB → 1.23 GB (0.0%)
  • vortex-file-compressed: 1.43 GB → 1.43 GB (-0.0%)

@github-actions

Copy link
Copy Markdown
Contributor

File Sizes: FineWeb NVMe

No file size changes detected.

@github-actions

github-actions Bot commented May 18, 2026

Copy link
Copy Markdown
Contributor

Benchmarks: TPC-H SF=1 on NVME

Verdict: No clear signal (low confidence)
Attributed Vortex impact: +3.2%
Engines: DataFusion No clear signal (+4.0%, environment too noisy confidence) · DuckDB No clear signal (+2.5%, environment too noisy confidence)
Vortex (geomean): 1.066x ➖
Parquet (geomean): 1.036x ➖
Shifts: Parquet (control) +3.6% · Median polish +5.9%

How to read Verdict and Engines
  • Verdict: Overall PR-level signal after subtracting baseline drift estimated from Parquet control rows. It can be Likely improvement, Likely regression, or No clear signal.
  • Engines: Per-engine attribution. DataFusion is compared against DataFusion/Parquet controls; DuckDB is compared against DuckDB/Parquet controls. This answers whether each engine improved or regressed independently.
  • Confidence: Based on directional consistency, share of rows above the noise floor, and control-run noise.

datafusion / vortex-file-compressed (1.082x ➖, 0↑ 4↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
tpch_q01/datafusion:vortex-file-compressed 53457892 49386191 1.08
tpch_q02/datafusion:vortex-file-compressed 23990312 22514392 1.07
tpch_q03/datafusion:vortex-file-compressed 27868909 25464750 1.09
tpch_q04/datafusion:vortex-file-compressed 🚨 21741583 19441936 1.12
tpch_q05/datafusion:vortex-file-compressed 🚨 54582603 48634282 1.12
tpch_q06/datafusion:vortex-file-compressed 10096662 9197612 1.10
tpch_q07/datafusion:vortex-file-compressed 59777911 54562983 1.10
tpch_q08/datafusion:vortex-file-compressed 41998677 39942607 1.05
tpch_q09/datafusion:vortex-file-compressed 56064965 51697637 1.08
tpch_q10/datafusion:vortex-file-compressed 44638762 43112931 1.04
tpch_q11/datafusion:vortex-file-compressed 🚨 17588651 15848048 1.11
tpch_q12/datafusion:vortex-file-compressed 23987726 22104562 1.09
tpch_q13/datafusion:vortex-file-compressed 28195757 26601312 1.06
tpch_q14/datafusion:vortex-file-compressed 16613750 15236654 1.09
tpch_q15/datafusion:vortex-file-compressed 🚨 24497925 22045788 1.11
tpch_q16/datafusion:vortex-file-compressed 20864956 19539505 1.07
tpch_q17/datafusion:vortex-file-compressed 70965563 68864299 1.03
tpch_q18/datafusion:vortex-file-compressed 86763295 80522742 1.08
tpch_q19/datafusion:vortex-file-compressed 17828854 16484346 1.08
tpch_q20/datafusion:vortex-file-compressed 30775719 28423684 1.08
tpch_q21/datafusion:vortex-file-compressed 75196763 69490779 1.08
tpch_q22/datafusion:vortex-file-compressed 12088627 11095472 1.09
datafusion / vortex-compact (1.057x ➖, 0↑ 1↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
tpch_q01/datafusion:vortex-compact 59076584 55127304 1.07
tpch_q02/datafusion:vortex-compact 27226785 26070336 1.04
tpch_q03/datafusion:vortex-compact 28455045 26762405 1.06
tpch_q04/datafusion:vortex-compact 22485226 21554134 1.04
tpch_q05/datafusion:vortex-compact 🚨 55460972 50355097 1.10
tpch_q06/datafusion:vortex-compact 12072580 11829387 1.02
tpch_q07/datafusion:vortex-compact 61239330 57238633 1.07
tpch_q08/datafusion:vortex-compact 44350036 41937297 1.06
tpch_q09/datafusion:vortex-compact 57502338 55414576 1.04
tpch_q10/datafusion:vortex-compact 46897039 44121278 1.06
tpch_q11/datafusion:vortex-compact 18071407 16913109 1.07
tpch_q12/datafusion:vortex-compact 30386169 30002474 1.01
tpch_q13/datafusion:vortex-compact 32878530 31367271 1.05
tpch_q14/datafusion:vortex-compact 19352994 18706005 1.03
tpch_q15/datafusion:vortex-compact 30518245 28753684 1.06
tpch_q16/datafusion:vortex-compact 26100069 24428752 1.07
tpch_q17/datafusion:vortex-compact 73993192 69006794 1.07
tpch_q18/datafusion:vortex-compact 87760680 82174703 1.07
tpch_q19/datafusion:vortex-compact 29131860 27301334 1.07
tpch_q20/datafusion:vortex-compact 34788742 32789963 1.06
tpch_q21/datafusion:vortex-compact 77760828 73823262 1.05
tpch_q22/datafusion:vortex-compact 12949361 12051388 1.07
datafusion / parquet (1.041x ➖, 0↑ 1↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
tpch_q01/datafusion:parquet 122628671 133481651 0.92
tpch_q02/datafusion:parquet 66782955 60848649 1.10
tpch_q03/datafusion:parquet 76327359 74646769 1.02
tpch_q04/datafusion:parquet 45087814 44005168 1.02
tpch_q05/datafusion:parquet 97490993 93879589 1.04
tpch_q06/datafusion:parquet 43036170 39405813 1.09
tpch_q07/datafusion:parquet 111057509 105131018 1.06
tpch_q08/datafusion:parquet 92443334 98501290 0.94
tpch_q09/datafusion:parquet 136204312 123880348 1.10
tpch_q10/datafusion:parquet 119801005 111153421 1.08
tpch_q11/datafusion:parquet 43425112 40486914 1.07
tpch_q12/datafusion:parquet 90107678 86745062 1.04
tpch_q13/datafusion:parquet 213577562 202106053 1.06
tpch_q14/datafusion:parquet 44565546 48595875 0.92
tpch_q15/datafusion:parquet 58863627 58669771 1.00
tpch_q16/datafusion:parquet 45013485 40963060 1.10
tpch_q17/datafusion:parquet 🚨 155629935 121786857 1.28
tpch_q18/datafusion:parquet 175829187 164067562 1.07
tpch_q19/datafusion:parquet 77807601 82716460 0.94
tpch_q20/datafusion:parquet 73114491 68673391 1.06
tpch_q21/datafusion:parquet 140699837 137790922 1.02
tpch_q22/datafusion:parquet 32259513 31101729 1.04
datafusion / arrow (1.109x ❌, 0↑ 10↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
tpch_q01/datafusion:arrow 57733413 56336783 1.02
tpch_q02/datafusion:arrow 19908784 18989294 1.05
tpch_q03/datafusion:arrow 🚨 33192323 29229798 1.14
tpch_q04/datafusion:arrow 🚨 28708017 24581763 1.17
tpch_q05/datafusion:arrow 🚨 91766898 72687923 1.26
tpch_q06/datafusion:arrow 🚨 25571256 19450732 1.31
tpch_q07/datafusion:arrow 111682071 102624791 1.09
tpch_q08/datafusion:arrow 🚨 49883274 42975709 1.16
tpch_q09/datafusion:arrow 72724288 66812317 1.09
tpch_q10/datafusion:arrow 49934596 49732671 1.00
tpch_q11/datafusion:arrow 9800917 9257575 1.06
tpch_q12/datafusion:arrow 🚨 55382283 50228413 1.10
tpch_q13/datafusion:arrow 48857951 46748742 1.05
tpch_q14/datafusion:arrow 22896484 20817746 1.10
tpch_q15/datafusion:arrow 🚨 45992808 41477300 1.11
tpch_q16/datafusion:arrow 19797498 18525023 1.07
tpch_q17/datafusion:arrow 74426623 68033346 1.09
tpch_q18/datafusion:arrow 143707113 132768664 1.08
tpch_q19/datafusion:arrow 🚨 39169928 34606223 1.13
tpch_q20/datafusion:arrow 🚨 38942388 33302930 1.17
tpch_q21/datafusion:arrow 🚨 163739449 145838260 1.12
tpch_q22/datafusion:arrow 18432878 17316897 1.06
duckdb / vortex-file-compressed (1.062x ➖, 0↑ 1↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
tpch_q01/duckdb:vortex-file-compressed 31991119 30798536 1.04
tpch_q02/duckdb:vortex-file-compressed 25936275 24693085 1.05
tpch_q03/duckdb:vortex-file-compressed 34372208 32541075 1.06
tpch_q04/duckdb:vortex-file-compressed 29755878 28003291 1.06
tpch_q05/duckdb:vortex-file-compressed 39672918 36990124 1.07
tpch_q06/duckdb:vortex-file-compressed 8824166 8058488 1.10
tpch_q07/duckdb:vortex-file-compressed 36533414 33931739 1.08
tpch_q08/duckdb:vortex-file-compressed 37834015 36209474 1.04
tpch_q09/duckdb:vortex-file-compressed 61475175 57307693 1.07
tpch_q10/duckdb:vortex-file-compressed 42966830 40705944 1.06
tpch_q11/duckdb:vortex-file-compressed 🚨 15931937 14427231 1.10
tpch_q12/duckdb:vortex-file-compressed 23186736 22386235 1.04
tpch_q13/duckdb:vortex-file-compressed 43124716 40986192 1.05
tpch_q14/duckdb:vortex-file-compressed 22658468 21688262 1.04
tpch_q15/duckdb:vortex-file-compressed 17619102 16849621 1.05
tpch_q16/duckdb:vortex-file-compressed 30696159 29822565 1.03
tpch_q17/duckdb:vortex-file-compressed 25327096 23918952 1.06
tpch_q18/duckdb:vortex-file-compressed 55262651 52536525 1.05
tpch_q19/duckdb:vortex-file-compressed 31038246 28848986 1.08
tpch_q20/duckdb:vortex-file-compressed 34729153 32136013 1.08
tpch_q21/duckdb:vortex-file-compressed 105894006 98666990 1.07
tpch_q22/duckdb:vortex-file-compressed 18341425 16915172 1.08
duckdb / vortex-compact (1.061x ➖, 0↑ 3↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
tpch_q01/duckdb:vortex-compact 39739031 37900537 1.05
tpch_q02/duckdb:vortex-compact 35323664 32803939 1.08
tpch_q03/duckdb:vortex-compact 35960745 33951555 1.06
tpch_q04/duckdb:vortex-compact 31819201 31310473 1.02
tpch_q05/duckdb:vortex-compact 43008251 40481908 1.06
tpch_q06/duckdb:vortex-compact 11646070 10754869 1.08
tpch_q07/duckdb:vortex-compact 44332824 40984249 1.08
tpch_q08/duckdb:vortex-compact 43258643 40853849 1.06
tpch_q09/duckdb:vortex-compact 67328625 64470805 1.04
tpch_q10/duckdb:vortex-compact 46922802 44771403 1.05
tpch_q11/duckdb:vortex-compact 18698055 18437760 1.01
tpch_q12/duckdb:vortex-compact 30890086 29499989 1.05
tpch_q13/duckdb:vortex-compact 48928583 46824188 1.04
tpch_q14/duckdb:vortex-compact 27840713 25855048 1.08
tpch_q15/duckdb:vortex-compact 20686365 19888460 1.04
tpch_q16/duckdb:vortex-compact 🚨 34898868 31478137 1.11
tpch_q17/duckdb:vortex-compact 30336040 29656703 1.02
tpch_q18/duckdb:vortex-compact 55682990 52520726 1.06
tpch_q19/duckdb:vortex-compact 🚨 36098167 32217665 1.12
tpch_q20/duckdb:vortex-compact 41744299 39735934 1.05
tpch_q21/duckdb:vortex-compact 110534846 102545878 1.08
tpch_q22/duckdb:vortex-compact 🚨 19947630 17987976 1.11
duckdb / parquet (1.032x ➖, 1↑ 2↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
tpch_q01/duckdb:parquet 79353100 78145058 1.02
tpch_q02/duckdb:parquet 40857593 39213361 1.04
tpch_q03/duckdb:parquet 72433821 70242904 1.03
tpch_q04/duckdb:parquet 51533633 57102782 0.90
tpch_q05/duckdb:parquet 70653811 68486287 1.03
tpch_q06/duckdb:parquet 22634711 22835972 0.99
tpch_q07/duckdb:parquet 74874300 71582845 1.05
tpch_q08/duckdb:parquet 84490749 83466705 1.01
tpch_q09/duckdb:parquet 🚨 154134617 132736404 1.16
tpch_q10/duckdb:parquet 132670790 129264573 1.03
tpch_q11/duckdb:parquet 23708712 22187516 1.07
tpch_q12/duckdb:parquet 🚀 48523035 55865140 0.87
tpch_q13/duckdb:parquet 270239714 252327914 1.07
tpch_q14/duckdb:parquet 53423143 50790468 1.05
tpch_q15/duckdb:parquet 26760583 25814870 1.04
tpch_q16/duckdb:parquet 60152369 58144736 1.03
tpch_q17/duckdb:parquet 60575408 58085674 1.04
tpch_q18/duckdb:parquet 121832429 125359997 0.97
tpch_q19/duckdb:parquet 🚨 86225176 71601262 1.20
tpch_q20/duckdb:parquet 67032610 65706494 1.02
tpch_q21/duckdb:parquet 194360406 180727029 1.08
tpch_q22/duckdb:parquet 55468045 53462561 1.04
duckdb / duckdb (1.048x ➖, 0↑ 2↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
tpch_q01/duckdb:duckdb 18434724 17391382 1.06
tpch_q02/duckdb:duckdb 🚨 15876094 14034480 1.13
tpch_q03/duckdb:duckdb 23589226 22463034 1.05
tpch_q04/duckdb:duckdb 23306150 22577657 1.03
tpch_q05/duckdb:duckdb 24487785 23645267 1.04
tpch_q06/duckdb:duckdb 7267118 7020438 1.04
tpch_q07/duckdb:duckdb 26457285 25212208 1.05
tpch_q08/duckdb:duckdb 25509820 23990271 1.06
tpch_q09/duckdb:duckdb 🚨 62016965 55987356 1.11
tpch_q10/duckdb:duckdb 51619695 50257232 1.03
tpch_q11/duckdb:duckdb 7658308 7106013 1.08
tpch_q12/duckdb:duckdb 18412112 17878221 1.03
tpch_q13/duckdb:duckdb 41285354 39628252 1.04
tpch_q14/duckdb:duckdb 22788351 21664955 1.05
tpch_q15/duckdb:duckdb 13992559 13756767 1.02
tpch_q16/duckdb:duckdb 27180907 26055578 1.04
tpch_q17/duckdb:duckdb 17036810 16481328 1.03
tpch_q18/duckdb:duckdb 42118794 40686308 1.04
tpch_q19/duckdb:duckdb 32806744 30791674 1.07
tpch_q20/duckdb:duckdb 25786028 25527516 1.01
tpch_q21/duckdb:duckdb 64263531 61914861 1.04
tpch_q22/duckdb:duckdb 26429144 25738432 1.03

File Size Changes (9 files changed, -0.0% overall, 3↑ 6↓)
File Scale Format Base HEAD Change %
lineitem_0.vortex 1.0 vortex-file-compressed 85.13 MB 85.30 MB +165.55 KB +0.2%
customer_0.vortex 1.0 vortex-file-compressed 8.89 MB 8.91 MB +15.48 KB +0.2%
partsupp_0.vortex 1.0 vortex-file-compressed 23.79 MB 23.79 MB +1.58 KB +0.0%
lineitem_1.vortex 1.0 vortex-file-compressed 84.63 MB 84.61 MB 21.27 KB -0.0%
part_0.vortex 1.0 vortex-compact 3.38 MB 3.37 MB 7.34 KB -0.2%
orders_0.vortex 1.0 vortex-file-compressed 38.85 MB 38.73 MB 118.95 KB -0.3%
partsupp_0.vortex 1.0 vortex-compact 20.75 MB 20.68 MB 76.09 KB -0.4%
supplier_0.vortex 1.0 vortex-file-compressed 617.39 KB 613.91 KB 3.48 KB -0.6%
part_0.vortex 1.0 vortex-file-compressed 5.05 MB 4.99 MB 56.09 KB -1.1%

Totals:

  • vortex-compact: 190.09 MB → 190.00 MB (-0.0%)
  • vortex-file-compressed: 247.23 MB → 247.22 MB (-0.0%)

@github-actions

Copy link
Copy Markdown
Contributor

File Sizes: TPC-H SF=1 on NVME

No file size changes detected.

@github-actions

github-actions Bot commented May 18, 2026

Copy link
Copy Markdown
Contributor

Benchmarks: TPC-DS SF=1 on NVME

Verdict: No clear signal (low confidence)
Attributed Vortex impact: -0.3%
Engines: DataFusion No clear signal (+0.2%, low confidence) · DuckDB No clear signal (-1.0%, low confidence)
Vortex (geomean): 0.992x ➖
Parquet (geomean): 0.995x ➖
Shifts: Parquet (control) -0.5% · Median polish -0.6%

How to read Verdict and Engines
  • Verdict: Overall PR-level signal after subtracting baseline drift estimated from Parquet control rows. It can be Likely improvement, Likely regression, or No clear signal.
  • Engines: Per-engine attribution. DataFusion is compared against DataFusion/Parquet controls; DuckDB is compared against DuckDB/Parquet controls. This answers whether each engine improved or regressed independently.
  • Confidence: Based on directional consistency, share of rows above the noise floor, and control-run noise.

datafusion / vortex-file-compressed (0.992x ➖, 1↑ 0↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
tpcds_q01/datafusion:vortex-file-compressed 25295364 25894933 0.98
tpcds_q02/datafusion:vortex-file-compressed 47062635 46784561 1.01
tpcds_q03/datafusion:vortex-file-compressed 15108652 14910394 1.01
tpcds_q04/datafusion:vortex-file-compressed 255072248 251004872 1.02
tpcds_q05/datafusion:vortex-file-compressed 43513227 43659833 1.00
tpcds_q06/datafusion:vortex-file-compressed 62080976 58102551 1.07
tpcds_q07/datafusion:vortex-file-compressed 41033060 42018415 0.98
tpcds_q08/datafusion:vortex-file-compressed 29633222 28465177 1.04
tpcds_q09/datafusion:vortex-file-compressed 35860281 36037021 1.00
tpcds_q10/datafusion:vortex-file-compressed 35628617 36417773 0.98
tpcds_q11/datafusion:vortex-file-compressed 128756074 136547829 0.94
tpcds_q12/datafusion:vortex-file-compressed 20016659 18596349 1.08
tpcds_q13/datafusion:vortex-file-compressed 45579496 44701010 1.02
tpcds_q14/datafusion:vortex-file-compressed 170545096 166649334 1.02
tpcds_q15/datafusion:vortex-file-compressed 28115917 27923844 1.01
tpcds_q16/datafusion:vortex-file-compressed 28277249 28096178 1.01
tpcds_q17/datafusion:vortex-file-compressed 61843904 63473560 0.97
tpcds_q18/datafusion:vortex-file-compressed 68774648 69421115 0.99
tpcds_q19/datafusion:vortex-file-compressed 21448242 21799262 0.98
tpcds_q20/datafusion:vortex-file-compressed 20264162 22185210 0.91
tpcds_q21/datafusion:vortex-file-compressed 37043436 37879453 0.98
tpcds_q22/datafusion:vortex-file-compressed 116612858 118389431 0.98
tpcds_q23/datafusion:vortex-file-compressed 150650523 154827294 0.97
tpcds_q24/datafusion:vortex-file-compressed 90663312 88752345 1.02
tpcds_q25/datafusion:vortex-file-compressed 66268397 68013603 0.97
tpcds_q26/datafusion:vortex-file-compressed 33705017 34051456 0.99
tpcds_q27/datafusion:vortex-file-compressed 110071094 108086543 1.02
tpcds_q28/datafusion:vortex-file-compressed 27845432 28009685 0.99
tpcds_q29/datafusion:vortex-file-compressed 60782347 62404986 0.97
tpcds_q30/datafusion:vortex-file-compressed 23291791 24357248 0.96
tpcds_q31/datafusion:vortex-file-compressed 75535799 71677833 1.05
tpcds_q32/datafusion:vortex-file-compressed 19034676 19104557 1.00
tpcds_q33/datafusion:vortex-file-compressed 29084113 30287890 0.96
tpcds_q34/datafusion:vortex-file-compressed 23538720 24571498 0.96
tpcds_q35/datafusion:vortex-file-compressed 43466408 44413666 0.98
tpcds_q36/datafusion:vortex-file-compressed 56863913 61265800 0.93
tpcds_q37/datafusion:vortex-file-compressed 24186527 24168041 1.00
tpcds_q38/datafusion:vortex-file-compressed 41524527 42937651 0.97
tpcds_q39/datafusion:vortex-file-compressed 110742312 107364391 1.03
tpcds_q40/datafusion:vortex-file-compressed 32652489 33738178 0.97
tpcds_q41/datafusion:vortex-file-compressed 16074658 14851415 1.08
tpcds_q42/datafusion:vortex-file-compressed 13284845 13490347 0.98
tpcds_q43/datafusion:vortex-file-compressed 18244805 18974677 0.96
tpcds_q44/datafusion:vortex-file-compressed 29781534 29471563 1.01
tpcds_q45/datafusion:vortex-file-compressed 28153569 28039275 1.00
tpcds_q46/datafusion:vortex-file-compressed 34971256 34442846 1.02
tpcds_q47/datafusion:vortex-file-compressed 130948222 132493252 0.99
tpcds_q48/datafusion:vortex-file-compressed 33535201 33583348 1.00
tpcds_q49/datafusion:vortex-file-compressed 57054718 58531212 0.97
tpcds_q50/datafusion:vortex-file-compressed 41416088 39707968 1.04
tpcds_q51/datafusion:vortex-file-compressed 87244957 89671128 0.97
tpcds_q52/datafusion:vortex-file-compressed 14272221 14049826 1.02
tpcds_q53/datafusion:vortex-file-compressed 21376354 21444052 1.00
tpcds_q54/datafusion:vortex-file-compressed 34972920 35687232 0.98
tpcds_q55/datafusion:vortex-file-compressed 13916032 13251880 1.05
tpcds_q56/datafusion:vortex-file-compressed 29645780 30075703 0.99
tpcds_q57/datafusion:vortex-file-compressed 107210762 106196821 1.01
tpcds_q58/datafusion:vortex-file-compressed 52309141 54143827 0.97
tpcds_q59/datafusion:vortex-file-compressed 55887005 55967334 1.00
tpcds_q60/datafusion:vortex-file-compressed 28914267 29076820 0.99
tpcds_q61/datafusion:vortex-file-compressed 40220339 40908263 0.98
tpcds_q62/datafusion:vortex-file-compressed 🚀 21944203 27563912 0.80
tpcds_q63/datafusion:vortex-file-compressed 21231006 22315453 0.95
tpcds_q64/datafusion:vortex-file-compressed 419229510 427254717 0.98
tpcds_q65/datafusion:vortex-file-compressed 39917656 40113613 1.00
tpcds_q66/datafusion:vortex-file-compressed 74581841 72067407 1.03
tpcds_q67/datafusion:vortex-file-compressed 147588445 145455132 1.01
tpcds_q68/datafusion:vortex-file-compressed 32436390 32318559 1.00
tpcds_q69/datafusion:vortex-file-compressed 34276086 35602755 0.96
tpcds_q70/datafusion:vortex-file-compressed 84743277 84065025 1.01
tpcds_q71/datafusion:vortex-file-compressed 22366283 22394504 1.00
tpcds_q72/datafusion:vortex-file-compressed 2180327898 2184429860 1.00
tpcds_q73/datafusion:vortex-file-compressed 23536006 22972931 1.02
tpcds_q74/datafusion:vortex-file-compressed 82913878 82271190 1.01
tpcds_q75/datafusion:vortex-file-compressed 113110911 112057697 1.01
tpcds_q76/datafusion:vortex-file-compressed 31265005 31337890 1.00
tpcds_q77/datafusion:vortex-file-compressed 39897583 41332408 0.97
tpcds_q78/datafusion:vortex-file-compressed 127031081 127464972 1.00
tpcds_q79/datafusion:vortex-file-compressed 28420626 28355820 1.00
tpcds_q80/datafusion:vortex-file-compressed 96661268 97671048 0.99
tpcds_q81/datafusion:vortex-file-compressed 23877754 23709272 1.01
tpcds_q82/datafusion:vortex-file-compressed 24279834 24710026 0.98
tpcds_q83/datafusion:vortex-file-compressed 33719274 34013052 0.99
tpcds_q84/datafusion:vortex-file-compressed 12710929 13059421 0.97
tpcds_q85/datafusion:vortex-file-compressed 90415626 93490677 0.97
tpcds_q86/datafusion:vortex-file-compressed 17287331 18034941 0.96
tpcds_q87/datafusion:vortex-file-compressed 42665185 41859636 1.02
tpcds_q88/datafusion:vortex-file-compressed 54216384 54093913 1.00
tpcds_q89/datafusion:vortex-file-compressed 24226070 25366671 0.96
tpcds_q90/datafusion:vortex-file-compressed 14873008 14503527 1.03
tpcds_q91/datafusion:vortex-file-compressed 18708762 18206592 1.03
tpcds_q92/datafusion:vortex-file-compressed 17582044 18083107 0.97
tpcds_q93/datafusion:vortex-file-compressed 34726692 33369728 1.04
tpcds_q94/datafusion:vortex-file-compressed 22779246 23562769 0.97
tpcds_q95/datafusion:vortex-file-compressed 60988148 62629160 0.97
tpcds_q96/datafusion:vortex-file-compressed 12821051 13655198 0.94
tpcds_q97/datafusion:vortex-file-compressed 30515677 31707003 0.96
tpcds_q98/datafusion:vortex-file-compressed 24140696 24305376 0.99
tpcds_q99/datafusion:vortex-file-compressed 31398910 29207539 1.08
datafusion / vortex-compact (0.985x ➖, 2↑ 1↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
tpcds_q01/datafusion:vortex-compact 25817585 25999648 0.99
tpcds_q02/datafusion:vortex-compact 53157805 53221536 1.00
tpcds_q03/datafusion:vortex-compact 19255273 20317050 0.95
tpcds_q04/datafusion:vortex-compact 292488180 298845214 0.98
tpcds_q05/datafusion:vortex-compact 47266267 47608238 0.99
tpcds_q06/datafusion:vortex-compact 60064979 63025193 0.95
tpcds_q07/datafusion:vortex-compact 57337382 53305747 1.08
tpcds_q08/datafusion:vortex-compact 35532261 35222151 1.01
tpcds_q09/datafusion:vortex-compact 49297214 49757085 0.99
tpcds_q10/datafusion:vortex-compact 47781808 48413254 0.99
tpcds_q11/datafusion:vortex-compact 148210048 159611284 0.93
tpcds_q12/datafusion:vortex-compact 24331051 24211982 1.00
tpcds_q13/datafusion:vortex-compact 122252601 122226190 1.00
tpcds_q14/datafusion:vortex-compact 199028956 200881010 0.99
tpcds_q15/datafusion:vortex-compact 30166100 30988938 0.97
tpcds_q16/datafusion:vortex-compact 31391048 31780330 0.99
tpcds_q17/datafusion:vortex-compact 73886844 76195164 0.97
tpcds_q18/datafusion:vortex-compact 78086430 78596092 0.99
tpcds_q19/datafusion:vortex-compact 29443550 31722501 0.93
tpcds_q20/datafusion:vortex-compact 25194464 25868458 0.97
tpcds_q21/datafusion:vortex-compact 41903057 40732501 1.03
tpcds_q22/datafusion:vortex-compact 🚨 128867139 115016815 1.12
tpcds_q23/datafusion:vortex-compact 166041971 164826149 1.01
tpcds_q24/datafusion:vortex-compact 97363806 98458559 0.99
tpcds_q25/datafusion:vortex-compact 79609180 78386269 1.02
tpcds_q26/datafusion:vortex-compact 43264491 44156765 0.98
tpcds_q27/datafusion:vortex-compact 133313389 127043895 1.05
tpcds_q28/datafusion:vortex-compact 96164032 95101805 1.01
tpcds_q29/datafusion:vortex-compact 74825922 74696487 1.00
tpcds_q30/datafusion:vortex-compact 27082164 29088070 0.93
tpcds_q31/datafusion:vortex-compact 96955846 94146410 1.03
tpcds_q32/datafusion:vortex-compact 23778813 25941318 0.92
tpcds_q33/datafusion:vortex-compact 37963965 36965998 1.03
tpcds_q34/datafusion:vortex-compact 34403860 33472492 1.03
tpcds_q35/datafusion:vortex-compact 49566838 50608992 0.98
tpcds_q36/datafusion:vortex-compact 73179376 80691832 0.91
tpcds_q37/datafusion:vortex-compact 34528485 34611624 1.00
tpcds_q38/datafusion:vortex-compact 51093124 49394564 1.03
tpcds_q39/datafusion:vortex-compact 113012170 118044492 0.96
tpcds_q40/datafusion:vortex-compact 36833462 37416827 0.98
tpcds_q41/datafusion:vortex-compact 17140096 17428388 0.98
tpcds_q42/datafusion:vortex-compact 18318110 18495285 0.99
tpcds_q43/datafusion:vortex-compact 24907133 25043347 0.99
tpcds_q44/datafusion:vortex-compact 47135131 46765600 1.01
tpcds_q45/datafusion:vortex-compact 32011217 34036341 0.94
tpcds_q46/datafusion:vortex-compact 47740506 48275707 0.99
tpcds_q47/datafusion:vortex-compact 147945126 160248063 0.92
tpcds_q48/datafusion:vortex-compact 82905653 80099178 1.04
tpcds_q49/datafusion:vortex-compact 70394564 69824538 1.01
tpcds_q50/datafusion:vortex-compact 47725116 48643646 0.98
tpcds_q51/datafusion:vortex-compact 100005928 95299060 1.05
tpcds_q52/datafusion:vortex-compact 18832974 20911789 0.90
tpcds_q53/datafusion:vortex-compact 28556445 29167592 0.98
tpcds_q54/datafusion:vortex-compact 41186286 43262070 0.95
tpcds_q55/datafusion:vortex-compact 17615715 18190720 0.97
tpcds_q56/datafusion:vortex-compact 35962315 36235880 0.99
tpcds_q57/datafusion:vortex-compact 115064884 112212336 1.03
tpcds_q58/datafusion:vortex-compact 62966462 63464654 0.99
tpcds_q59/datafusion:vortex-compact 68778701 70815381 0.97
tpcds_q60/datafusion:vortex-compact 36254576 38357189 0.95
tpcds_q61/datafusion:vortex-compact 54837186 55715984 0.98
tpcds_q62/datafusion:vortex-compact 🚀 25361324 28788977 0.88
tpcds_q63/datafusion:vortex-compact 28638110 28598879 1.00
tpcds_q64/datafusion:vortex-compact 465189912 466471170 1.00
tpcds_q65/datafusion:vortex-compact 53021802 53741145 0.99
tpcds_q66/datafusion:vortex-compact 75264394 75644216 0.99
tpcds_q67/datafusion:vortex-compact 154839860 158862560 0.97
tpcds_q68/datafusion:vortex-compact 45277316 45819212 0.99
tpcds_q69/datafusion:vortex-compact 45355224 45500009 1.00
tpcds_q70/datafusion:vortex-compact 93287042 97948241 0.95
tpcds_q71/datafusion:vortex-compact 29628156 30513286 0.97
tpcds_q72/datafusion:vortex-compact 2205311298 2207903140 1.00
tpcds_q73/datafusion:vortex-compact 30551790 30945951 0.99
tpcds_q74/datafusion:vortex-compact 89051232 97363530 0.91
tpcds_q75/datafusion:vortex-compact 129022120 129092451 1.00
tpcds_q76/datafusion:vortex-compact 🚀 32007536 35919593 0.89
tpcds_q77/datafusion:vortex-compact 51865466 50689765 1.02
tpcds_q78/datafusion:vortex-compact 138768773 140979166 0.98
tpcds_q79/datafusion:vortex-compact 39502514 39020747 1.01
tpcds_q80/datafusion:vortex-compact 104928126 106164788 0.99
tpcds_q81/datafusion:vortex-compact 28129235 28440766 0.99
tpcds_q82/datafusion:vortex-compact 33989065 37468248 0.91
tpcds_q83/datafusion:vortex-compact 33404679 34471668 0.97
tpcds_q84/datafusion:vortex-compact 14121646 14272488 0.99
tpcds_q85/datafusion:vortex-compact 160251919 160064379 1.00
tpcds_q86/datafusion:vortex-compact 17915906 18577729 0.96
tpcds_q87/datafusion:vortex-compact 50832098 50583378 1.00
tpcds_q88/datafusion:vortex-compact 78394446 77240600 1.01
tpcds_q89/datafusion:vortex-compact 31212620 31895775 0.98
tpcds_q90/datafusion:vortex-compact 14513707 14747188 0.98
tpcds_q91/datafusion:vortex-compact 32563911 32705151 1.00
tpcds_q92/datafusion:vortex-compact 23435859 23678422 0.99
tpcds_q93/datafusion:vortex-compact 39484409 38983910 1.01
tpcds_q94/datafusion:vortex-compact 25182741 25973647 0.97
tpcds_q95/datafusion:vortex-compact 64402061 64633750 1.00
tpcds_q96/datafusion:vortex-compact 17221953 16820030 1.02
tpcds_q97/datafusion:vortex-compact 35348285 35561549 0.99
tpcds_q98/datafusion:vortex-compact 30135270 29684630 1.02
tpcds_q99/datafusion:vortex-compact 32916441 33355383 0.99
datafusion / parquet (0.987x ➖, 5↑ 0↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
tpcds_q01/datafusion:parquet 🚀 29152271 32413679 0.90
tpcds_q02/datafusion:parquet 41919119 41330481 1.01
tpcds_q03/datafusion:parquet 12987995 13261339 0.98
tpcds_q04/datafusion:parquet 261753216 264045652 0.99
tpcds_q05/datafusion:parquet 41516673 43180452 0.96
tpcds_q06/datafusion:parquet 60889921 61840926 0.98
tpcds_q07/datafusion:parquet 79695805 76124300 1.05
tpcds_q08/datafusion:parquet 26089613 25303460 1.03
tpcds_q09/datafusion:parquet 46554825 45167453 1.03
tpcds_q10/datafusion:parquet 70960556 68972971 1.03
tpcds_q11/datafusion:parquet 155113153 148790670 1.04
tpcds_q12/datafusion:parquet 17973177 18031275 1.00
tpcds_q13/datafusion:parquet 75478822 73383713 1.03
tpcds_q14/datafusion:parquet 164978579 162019507 1.02
tpcds_q15/datafusion:parquet 21248625 20583445 1.03
tpcds_q16/datafusion:parquet 23675410 23142180 1.02
tpcds_q17/datafusion:parquet 62661175 67215148 0.93
tpcds_q18/datafusion:parquet 112792895 115220474 0.98
tpcds_q19/datafusion:parquet 23149509 22583811 1.03
tpcds_q20/datafusion:parquet 16834622 17206153 0.98
tpcds_q21/datafusion:parquet 18391961 18570948 0.99
tpcds_q22/datafusion:parquet 146197670 139009980 1.05
tpcds_q23/datafusion:parquet 149900959 147010531 1.02
tpcds_q24/datafusion:parquet 93401233 92292809 1.01
tpcds_q25/datafusion:parquet 66369292 63563095 1.04
tpcds_q26/datafusion:parquet 63618354 65555152 0.97
tpcds_q27/datafusion:parquet 145841924 145448896 1.00
tpcds_q28/datafusion:parquet 44998492 42904209 1.05
tpcds_q29/datafusion:parquet 65133744 67096510 0.97
tpcds_q30/datafusion:parquet 34247309 33901855 1.01
tpcds_q31/datafusion:parquet 63902156 64331136 0.99
tpcds_q32/datafusion:parquet 18345963 18353313 1.00
tpcds_q33/datafusion:parquet 26919924 26548411 1.01
tpcds_q34/datafusion:parquet 23586943 21720688 1.09
tpcds_q35/datafusion:parquet 69162392 69937527 0.99
tpcds_q36/datafusion:parquet 57283498 56809088 1.01
tpcds_q37/datafusion:parquet 18219419 18706544 0.97
tpcds_q38/datafusion:parquet 42242736 42453178 1.00
tpcds_q39/datafusion:parquet 74074403 76442077 0.97
tpcds_q40/datafusion:parquet 25212348 23953986 1.05
tpcds_q41/datafusion:parquet 13084253 13386278 0.98
tpcds_q42/datafusion:parquet 11381410 12350162 0.92
tpcds_q43/datafusion:parquet 16675753 17073591 0.98
tpcds_q44/datafusion:parquet 33921585 32489915 1.04
tpcds_q45/datafusion:parquet 28993052 27816481 1.04
tpcds_q46/datafusion:parquet 32395646 32845178 0.99
tpcds_q47/datafusion:parquet 125069884 126489363 0.99
tpcds_q48/datafusion:parquet 68284577 68831403 0.99
tpcds_q49/datafusion:parquet 55239485 56208308 0.98
tpcds_q50/datafusion:parquet 42516628 43276629 0.98
tpcds_q51/datafusion:parquet 85587643 88691672 0.97
tpcds_q52/datafusion:parquet 🚀 11834322 13502771 0.88
tpcds_q53/datafusion:parquet 17381023 17577543 0.99
tpcds_q54/datafusion:parquet 34521787 33873090 1.02
tpcds_q55/datafusion:parquet 11023161 11517391 0.96
tpcds_q56/datafusion:parquet 26324586 27310776 0.96
tpcds_q57/datafusion:parquet 93521901 98605112 0.95
tpcds_q58/datafusion:parquet 50903425 50851588 1.00
tpcds_q59/datafusion:parquet 56929575 56377237 1.01
tpcds_q60/datafusion:parquet 28546569 27313121 1.05
tpcds_q61/datafusion:parquet 43403201 42835802 1.01
tpcds_q62/datafusion:parquet 🚀 21742089 25206364 0.86
tpcds_q63/datafusion:parquet 17729727 17343584 1.02
tpcds_q64/datafusion:parquet 515337249 521976545 0.99
tpcds_q65/datafusion:parquet 37806460 36794582 1.03
tpcds_q66/datafusion:parquet 66449592 70978279 0.94
tpcds_q67/datafusion:parquet 144144581 143259446 1.01
tpcds_q68/datafusion:parquet 30971964 31492969 0.98
tpcds_q69/datafusion:parquet 63955915 63654423 1.00
tpcds_q70/datafusion:parquet 84942292 90431084 0.94
tpcds_q71/datafusion:parquet 22147013 22866045 0.97
tpcds_q72/datafusion:parquet 604471399 627902668 0.96
tpcds_q73/datafusion:parquet 19741634 20666084 0.96
tpcds_q74/datafusion:parquet 83635325 87015889 0.96
tpcds_q75/datafusion:parquet 99273554 98952523 1.00
tpcds_q76/datafusion:parquet 30294790 29886990 1.01
tpcds_q77/datafusion:parquet 38937962 38457588 1.01
tpcds_q78/datafusion:parquet 111290195 112971811 0.99
tpcds_q79/datafusion:parquet 26680500 26155010 1.02
tpcds_q80/datafusion:parquet 80557377 83742633 0.96
tpcds_q81/datafusion:parquet 31165872 31411721 0.99
tpcds_q82/datafusion:parquet 19002632 18881234 1.01
tpcds_q83/datafusion:parquet 35796722 36511759 0.98
tpcds_q84/datafusion:parquet 38609015 38300698 1.01
tpcds_q85/datafusion:parquet 148017676 153432736 0.96
tpcds_q86/datafusion:parquet 🚀 13395322 16316165 0.82
tpcds_q87/datafusion:parquet 41071163 43231603 0.95
tpcds_q88/datafusion:parquet 61958136 61017973 1.02
tpcds_q89/datafusion:parquet 21176052 21941020 0.97
tpcds_q90/datafusion:parquet 13735075 14653667 0.94
tpcds_q91/datafusion:parquet 57113658 57204464 1.00
tpcds_q92/datafusion:parquet 18232083 17542062 1.04
tpcds_q93/datafusion:parquet 31496829 32327601 0.97
tpcds_q94/datafusion:parquet 19853575 20583165 0.96
tpcds_q95/datafusion:parquet 59052876 61300335 0.96
tpcds_q96/datafusion:parquet 11310434 12083619 0.94
tpcds_q97/datafusion:parquet 29390788 31291509 0.94
tpcds_q98/datafusion:parquet 22082937 21447054 1.03
tpcds_q99/datafusion:parquet 🚀 25765169 32096146 0.80
duckdb / vortex-file-compressed (0.996x ➖, 1↑ 0↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
tpcds_q01/duckdb:vortex-file-compressed 23585954 23780875 0.99
tpcds_q02/duckdb:vortex-file-compressed 33187483 36671786 0.90
tpcds_q03/duckdb:vortex-file-compressed 15928742 15554003 1.02
tpcds_q04/duckdb:vortex-file-compressed 99055633 93893857 1.05
tpcds_q05/duckdb:vortex-file-compressed 32641785 32511313 1.00
tpcds_q06/duckdb:vortex-file-compressed 32983429 32384885 1.02
tpcds_q07/duckdb:vortex-file-compressed 21687897 21347043 1.02
tpcds_q08/duckdb:vortex-file-compressed 26507023 26776126 0.99
tpcds_q09/duckdb:vortex-file-compressed 16128381 16673915 0.97
tpcds_q10/duckdb:vortex-file-compressed 35890643 36417067 0.99
tpcds_q11/duckdb:vortex-file-compressed 64610183 64816318 1.00
tpcds_q12/duckdb:vortex-file-compressed 15532011 15360347 1.01
tpcds_q13/duckdb:vortex-file-compressed 32462735 32791603 0.99
tpcds_q14/duckdb:vortex-file-compressed 95423544 95869728 1.00
tpcds_q15/duckdb:vortex-file-compressed 26732191 26473268 1.01
tpcds_q16/duckdb:vortex-file-compressed 26656610 25788690 1.03
tpcds_q17/duckdb:vortex-file-compressed 43278039 44294552 0.98
tpcds_q18/duckdb:vortex-file-compressed 36108774 36271776 1.00
tpcds_q19/duckdb:vortex-file-compressed 31849596 32127800 0.99
tpcds_q20/duckdb:vortex-file-compressed 16415825 16943254 0.97
tpcds_q21/duckdb:vortex-file-compressed 16389457 16495977 0.99
tpcds_q22/duckdb:vortex-file-compressed 74481457 76449894 0.97
tpcds_q23/duckdb:vortex-file-compressed 95357247 94962500 1.00
tpcds_q24/duckdb:vortex-file-compressed 46693384 48305796 0.97
tpcds_q25/duckdb:vortex-file-compressed 40496826 40260286 1.01
tpcds_q26/duckdb:vortex-file-compressed 20268819 19447300 1.04
tpcds_q27/duckdb:vortex-file-compressed 25782251 24169084 1.07
tpcds_q28/duckdb:vortex-file-compressed 10910885 11708040 0.93
tpcds_q29/duckdb:vortex-file-compressed 39681698 39594703 1.00
tpcds_q30/duckdb:vortex-file-compressed 24109781 24896059 0.97
tpcds_q31/duckdb:vortex-file-compressed 28783149 29535454 0.97
tpcds_q32/duckdb:vortex-file-compressed 13604703 12879602 1.06
tpcds_q33/duckdb:vortex-file-compressed 23133655 24063640 0.96
tpcds_q34/duckdb:vortex-file-compressed 24757647 25075153 0.99
tpcds_q35/duckdb:vortex-file-compressed 64801149 63983397 1.01
tpcds_q36/duckdb:vortex-file-compressed 24984163 23367786 1.07
tpcds_q37/duckdb:vortex-file-compressed 19081492 19095664 1.00
tpcds_q38/duckdb:vortex-file-compressed 34963350 36179941 0.97
tpcds_q39/duckdb:vortex-file-compressed 35139832 34685509 1.01
tpcds_q40/duckdb:vortex-file-compressed 19779682 20563831 0.96
tpcds_q41/duckdb:vortex-file-compressed 8980949 8925288 1.01
tpcds_q42/duckdb:vortex-file-compressed 13704635 12946767 1.06
tpcds_q43/duckdb:vortex-file-compressed 20873067 21009240 0.99
tpcds_q44/duckdb:vortex-file-compressed 20558926 20357879 1.01
tpcds_q45/duckdb:vortex-file-compressed 29266167 29459882 0.99
tpcds_q46/duckdb:vortex-file-compressed 29943181 32871550 0.91
tpcds_q47/duckdb:vortex-file-compressed 52021467 50864631 1.02
tpcds_q48/duckdb:vortex-file-compressed 28661914 28668964 1.00
tpcds_q49/duckdb:vortex-file-compressed 🚀 30396292 34077165 0.89
tpcds_q50/duckdb:vortex-file-compressed 26379024 25727181 1.03
tpcds_q51/duckdb:vortex-file-compressed 104850445 103750992 1.01
tpcds_q52/duckdb:vortex-file-compressed 12071264 13192008 0.92
tpcds_q53/duckdb:vortex-file-compressed 22364148 22443309 1.00
tpcds_q54/duckdb:vortex-file-compressed 28783697 28099873 1.02
tpcds_q55/duckdb:vortex-file-compressed 12292850 12508680 0.98
tpcds_q56/duckdb:vortex-file-compressed 24380147 24370961 1.00
tpcds_q57/duckdb:vortex-file-compressed 46004452 42628590 1.08
tpcds_q58/duckdb:vortex-file-compressed 28730072 31125272 0.92
tpcds_q59/duckdb:vortex-file-compressed 56592822 55615016 1.02
tpcds_q60/duckdb:vortex-file-compressed 24664731 25825543 0.96
tpcds_q61/duckdb:vortex-file-compressed 31056820 31177982 1.00
tpcds_q62/duckdb:vortex-file-compressed 15538697 15272723 1.02
tpcds_q63/duckdb:vortex-file-compressed 19972830 19988959 1.00
tpcds_q64/duckdb:vortex-file-compressed 91736543 92244636 0.99
tpcds_q65/duckdb:vortex-file-compressed 23282361 22378719 1.04
tpcds_q66/duckdb:vortex-file-compressed 29694397 29522184 1.01
tpcds_q67/duckdb:vortex-file-compressed 138393382 144345179 0.96
tpcds_q68/duckdb:vortex-file-compressed 31299018 32346184 0.97
tpcds_q69/duckdb:vortex-file-compressed 39420556 39309252 1.00
tpcds_q70/duckdb:vortex-file-compressed 37579504 36948997 1.02
tpcds_q71/duckdb:vortex-file-compressed 20835350 20229074 1.03
tpcds_q72/duckdb:vortex-file-compressed 167881522 169200213 0.99
tpcds_q73/duckdb:vortex-file-compressed 24663450 24190685 1.02
tpcds_q74/duckdb:vortex-file-compressed 43489870 41394081 1.05
tpcds_q75/duckdb:vortex-file-compressed 48421234 50953018 0.95
tpcds_q76/duckdb:vortex-file-compressed 20094139 20287720 0.99
tpcds_q77/duckdb:vortex-file-compressed 24292592 22529432 1.08
tpcds_q78/duckdb:vortex-file-compressed 77613143 74464031 1.04
tpcds_q79/duckdb:vortex-file-compressed 23405265 25584894 0.91
tpcds_q80/duckdb:vortex-file-compressed 49124663 47222224 1.04
tpcds_q81/duckdb:vortex-file-compressed 29270414 29120624 1.01
tpcds_q82/duckdb:vortex-file-compressed 44991657 45533478 0.99
tpcds_q83/duckdb:vortex-file-compressed 24771713 25214739 0.98
tpcds_q84/duckdb:vortex-file-compressed 16984172 16820376 1.01
tpcds_q85/duckdb:vortex-file-compressed 38859754 38931357 1.00
tpcds_q86/duckdb:vortex-file-compressed 16390901 16125872 1.02
tpcds_q87/duckdb:vortex-file-compressed 40075359 39395232 1.02
tpcds_q88/duckdb:vortex-file-compressed 50295817 51262591 0.98
tpcds_q89/duckdb:vortex-file-compressed 21499274 21209428 1.01
tpcds_q90/duckdb:vortex-file-compressed 9662503 9970608 0.97
tpcds_q91/duckdb:vortex-file-compressed 21071742 21774435 0.97
tpcds_q92/duckdb:vortex-file-compressed 17414070 18674124 0.93
tpcds_q93/duckdb:vortex-file-compressed 31408673 29569400 1.06
tpcds_q94/duckdb:vortex-file-compressed 21294492 21306927 1.00
tpcds_q95/duckdb:vortex-file-compressed 147847315 149690259 0.99
tpcds_q96/duckdb:vortex-file-compressed 12763147 12582453 1.01
tpcds_q97/duckdb:vortex-file-compressed 38205249 38464946 0.99
tpcds_q98/duckdb:vortex-file-compressed 18752649 20047578 0.94
tpcds_q99/duckdb:vortex-file-compressed 22465207 22594128 0.99
duckdb / vortex-compact (0.995x ➖, 1↑ 3↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
tpcds_q01/duckdb:vortex-compact 🚨 27531069 24453787 1.13
tpcds_q02/duckdb:vortex-compact 🚀 30848572 38862601 0.79
tpcds_q03/duckdb:vortex-compact 46037389 46116823 1.00
tpcds_q04/duckdb:vortex-compact 104842454 109460324 0.96
tpcds_q05/duckdb:vortex-compact 42564034 42563990 1.00
tpcds_q06/duckdb:vortex-compact 37684635 38412570 0.98
tpcds_q07/duckdb:vortex-compact 35460604 34423088 1.03
tpcds_q08/duckdb:vortex-compact 40725822 40921549 1.00
tpcds_q09/duckdb:vortex-compact 18462008 19561937 0.94
tpcds_q10/duckdb:vortex-compact 49933552 51694826 0.97
tpcds_q11/duckdb:vortex-compact 72565855 73954453 0.98
tpcds_q12/duckdb:vortex-compact 22008077 22355553 0.98
tpcds_q13/duckdb:vortex-compact 53904335 53342045 1.01
tpcds_q14/duckdb:vortex-compact 114892900 112441465 1.02
tpcds_q15/duckdb:vortex-compact 29096701 30201705 0.96
tpcds_q16/duckdb:vortex-compact 28133556 26719390 1.05
tpcds_q17/duckdb:vortex-compact 54091591 54562245 0.99
tpcds_q18/duckdb:vortex-compact 47463111 51242293 0.93
tpcds_q19/duckdb:vortex-compact 44101600 44549574 0.99
tpcds_q20/duckdb:vortex-compact 20423789 20466863 1.00
tpcds_q21/duckdb:vortex-compact 17642997 17672002 1.00
tpcds_q22/duckdb:vortex-compact 73810424 80478344 0.92
tpcds_q23/duckdb:vortex-compact 112510864 109790622 1.02
tpcds_q24/duckdb:vortex-compact 58362424 57017451 1.02
tpcds_q25/duckdb:vortex-compact 56318451 54043665 1.04
tpcds_q26/duckdb:vortex-compact 31168875 30316336 1.03
tpcds_q27/duckdb:vortex-compact 35666361 36569530 0.98
tpcds_q28/duckdb:vortex-compact 33439267 35683308 0.94
tpcds_q29/duckdb:vortex-compact 53433366 53168626 1.00
tpcds_q30/duckdb:vortex-compact 29896164 29839101 1.00
tpcds_q31/duckdb:vortex-compact 34949784 36167621 0.97
tpcds_q32/duckdb:vortex-compact 🚨 22489452 20371249 1.10
tpcds_q33/duckdb:vortex-compact 🚨 36879235 31981437 1.15
tpcds_q34/duckdb:vortex-compact 30242485 29635316 1.02
tpcds_q35/duckdb:vortex-compact 74741993 75029679 1.00
tpcds_q36/duckdb:vortex-compact 35404436 35504343 1.00
tpcds_q37/duckdb:vortex-compact 23607496 23338004 1.01
tpcds_q38/duckdb:vortex-compact 40650489 41387968 0.98
tpcds_q39/duckdb:vortex-compact 38425291 37585703 1.02
tpcds_q40/duckdb:vortex-compact 24491667 23829805 1.03
tpcds_q41/duckdb:vortex-compact 10703540 10486910 1.02
tpcds_q42/duckdb:vortex-compact 19781286 19166709 1.03
tpcds_q43/duckdb:vortex-compact 31285943 30614377 1.02
tpcds_q44/duckdb:vortex-compact 29062303 30207820 0.96
tpcds_q45/duckdb:vortex-compact 35951368 35629433 1.01
tpcds_q46/duckdb:vortex-compact 43166619 45298728 0.95
tpcds_q47/duckdb:vortex-compact 62438335 61766904 1.01
tpcds_q48/duckdb:vortex-compact 45141486 45379363 0.99
tpcds_q49/duckdb:vortex-compact 49559142 49104614 1.01
tpcds_q50/duckdb:vortex-compact 36993762 37112428 1.00
tpcds_q51/duckdb:vortex-compact 113487788 111679421 1.02
tpcds_q52/duckdb:vortex-compact 18430893 18989933 0.97
tpcds_q53/duckdb:vortex-compact 33648038 33011739 1.02
tpcds_q54/duckdb:vortex-compact 36523173 37039573 0.99
tpcds_q55/duckdb:vortex-compact 18559733 19274469 0.96
tpcds_q56/duckdb:vortex-compact 32989688 33719624 0.98
tpcds_q57/duckdb:vortex-compact 44661126 45813188 0.97
tpcds_q58/duckdb:vortex-compact 37190962 35276949 1.05
tpcds_q59/duckdb:vortex-compact 66717417 67064833 0.99
tpcds_q60/duckdb:vortex-compact 36509599 34828237 1.05
tpcds_q61/duckdb:vortex-compact 52759097 52771289 1.00
tpcds_q62/duckdb:vortex-compact 21747760 23211122 0.94
tpcds_q63/duckdb:vortex-compact 31522197 32171884 0.98
tpcds_q64/duckdb:vortex-compact 124289875 124948455 0.99
tpcds_q65/duckdb:vortex-compact 29676965 31547412 0.94
tpcds_q66/duckdb:vortex-compact 35925891 35808083 1.00
tpcds_q67/duckdb:vortex-compact 151156479 151288544 1.00
tpcds_q68/duckdb:vortex-compact 45957254 45273833 1.02
tpcds_q69/duckdb:vortex-compact 54391171 56377052 0.96
tpcds_q70/duckdb:vortex-compact 57957210 60323545 0.96
tpcds_q71/duckdb:vortex-compact 29803715 28125986 1.06
tpcds_q72/duckdb:vortex-compact 183397518 184606698 0.99
tpcds_q73/duckdb:vortex-compact 27964655 28852266 0.97
tpcds_q74/duckdb:vortex-compact 49015510 48317157 1.01
tpcds_q75/duckdb:vortex-compact 61231177 59116760 1.04
tpcds_q76/duckdb:vortex-compact 31338620 30961345 1.01
tpcds_q77/duckdb:vortex-compact 37334608 37299100 1.00
tpcds_q78/duckdb:vortex-compact 85297912 89949830 0.95
tpcds_q79/duckdb:vortex-compact 39271176 42566613 0.92
tpcds_q80/duckdb:vortex-compact 77633159 70944958 1.09
tpcds_q81/duckdb:vortex-compact 33472155 32986048 1.01
tpcds_q82/duckdb:vortex-compact 49550934 49882822 0.99
tpcds_q83/duckdb:vortex-compact 34896131 35882257 0.97
tpcds_q84/duckdb:vortex-compact 21971626 20419338 1.08
tpcds_q85/duckdb:vortex-compact 53066901 54487593 0.97
tpcds_q86/duckdb:vortex-compact 20491305 19906214 1.03
tpcds_q87/duckdb:vortex-compact 44960537 45532886 0.99
tpcds_q88/duckdb:vortex-compact 76572666 75233173 1.02
tpcds_q89/duckdb:vortex-compact 32133154 32936670 0.98
tpcds_q90/duckdb:vortex-compact 10875652 10439560 1.04
tpcds_q91/duckdb:vortex-compact 40534479 39490918 1.03
tpcds_q92/duckdb:vortex-compact 42217837 43820703 0.96
tpcds_q93/duckdb:vortex-compact 31687337 32782257 0.97
tpcds_q94/duckdb:vortex-compact 26038671 27297589 0.95
tpcds_q95/duckdb:vortex-compact 157330947 165279148 0.95
tpcds_q96/duckdb:vortex-compact 15705388 17029794 0.92
tpcds_q97/duckdb:vortex-compact 42666255 41418188 1.03
tpcds_q98/duckdb:vortex-compact 26945425 27525804 0.98
tpcds_q99/duckdb:vortex-compact 25095890 26290420 0.95
duckdb / parquet (1.004x ➖, 0↑ 1↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
tpcds_q01/duckdb:parquet 29703004 29678901 1.00
tpcds_q02/duckdb:parquet 24328111 24363535 1.00
tpcds_q03/duckdb:parquet 13500486 13160469 1.03
tpcds_q04/duckdb:parquet 169584599 175095261 0.97
tpcds_q05/duckdb:parquet 31938793 31887654 1.00
tpcds_q06/duckdb:parquet 33599320 34509519 0.97
tpcds_q07/duckdb:parquet 23713672 24549381 0.97
tpcds_q08/duckdb:parquet 29609833 29290968 1.01
tpcds_q09/duckdb:parquet 44865841 44324620 1.01
tpcds_q10/duckdb:parquet 37786463 37651033 1.00
tpcds_q11/duckdb:parquet 92248599 87968091 1.05
tpcds_q12/duckdb:parquet 17211066 17093681 1.01
tpcds_q13/duckdb:parquet 34980855 35106743 1.00
tpcds_q14/duckdb:parquet 102868410 103738877 0.99
tpcds_q15/duckdb:parquet 30445135 30736699 0.99
tpcds_q16/duckdb:parquet 22325688 22839238 0.98
tpcds_q17/duckdb:parquet 38143102 38415384 0.99
tpcds_q18/duckdb:parquet 47476723 48820175 0.97
tpcds_q19/duckdb:parquet 31788345 31477006 1.01
tpcds_q20/duckdb:parquet 18947057 18653895 1.02
tpcds_q21/duckdb:parquet 11871173 11547137 1.03
tpcds_q22/duckdb:parquet 71011645 72031298 0.99
tpcds_q23/duckdb:parquet 79886388 82537472 0.97
tpcds_q24/duckdb:parquet 46201933 46571208 0.99
tpcds_q25/duckdb:parquet 35829025 35672911 1.00
tpcds_q26/duckdb:parquet 39064231 39719379 0.98
tpcds_q27/duckdb:parquet 52661979 52816023 1.00
tpcds_q28/duckdb:parquet 42793330 43472442 0.98
tpcds_q29/duckdb:parquet 37033162 36824937 1.01
tpcds_q30/duckdb:parquet 37804123 37626506 1.00
tpcds_q31/duckdb:parquet 27747126 28536516 0.97
tpcds_q32/duckdb:parquet 12650418 12662942 1.00
tpcds_q33/duckdb:parquet 23934913 23011907 1.04
tpcds_q34/duckdb:parquet 22272368 22162246 1.00
tpcds_q35/duckdb:parquet 61058472 62769418 0.97
tpcds_q36/duckdb:parquet 22780754 22423421 1.02
tpcds_q37/duckdb:parquet 14049954 14325456 0.98
tpcds_q38/duckdb:parquet 36223305 36206801 1.00
tpcds_q39/duckdb:parquet 32905747 32916692 1.00
tpcds_q40/duckdb:parquet 19683240 19513717 1.01
tpcds_q41/duckdb:parquet 9054162 9105004 0.99
tpcds_q42/duckdb:parquet 13005362 12468497 1.04
tpcds_q43/duckdb:parquet 19921583 18156995 1.10
tpcds_q44/duckdb:parquet 25978754 25799929 1.01
tpcds_q45/duckdb:parquet 29498843 28734948 1.03
tpcds_q46/duckdb:parquet 47929434 47766580 1.00
tpcds_q47/duckdb:parquet 49328759 50855730 0.97
tpcds_q48/duckdb:parquet 32658616 32520994 1.00
tpcds_q49/duckdb:parquet 28725034 28275881 1.02
tpcds_q50/duckdb:parquet 25886509 26138513 0.99
tpcds_q51/duckdb:parquet 103452922 104688547 0.99
tpcds_q52/duckdb:parquet 12908362 12460031 1.04
tpcds_q53/duckdb:parquet 19780742 19117910 1.03
tpcds_q54/duckdb:parquet 28697697 29474412 0.97
tpcds_q55/duckdb:parquet 13205679 12146896 1.09
tpcds_q56/duckdb:parquet 23078816 24258914 0.95
tpcds_q57/duckdb:parquet 40460316 38194231 1.06
tpcds_q58/duckdb:parquet 26589993 26201189 1.01
tpcds_q59/duckdb:parquet 36301003 36754536 0.99
tpcds_q60/duckdb:parquet 24876335 26411033 0.94
tpcds_q61/duckdb:parquet 34360163 33878828 1.01
tpcds_q62/duckdb:parquet 12427653 12478292 1.00
tpcds_q63/duckdb:parquet 17296573 17682022 0.98
tpcds_q64/duckdb:parquet 74621137 80510616 0.93
tpcds_q65/duckdb:parquet 23694090 23126102 1.02
tpcds_q66/duckdb:parquet 🚨 35295346 29345026 1.20
tpcds_q67/duckdb:parquet 134905505 137815102 0.98
tpcds_q68/duckdb:parquet 38014837 39323871 0.97
tpcds_q69/duckdb:parquet 39383387 38664774 1.02
tpcds_q70/duckdb:parquet 22078414 22162542 1.00
tpcds_q71/duckdb:parquet 23608235 22815621 1.03
tpcds_q72/duckdb:parquet 166077567 167649032 0.99
tpcds_q73/duckdb:parquet 20644932 19492848 1.06
tpcds_q74/duckdb:parquet 125859336 126842280 0.99
tpcds_q75/duckdb:parquet 57099861 54943760 1.04
tpcds_q76/duckdb:parquet 21717617 22223301 0.98
tpcds_q77/duckdb:parquet 24920165 25482092 0.98
tpcds_q78/duckdb:parquet 80578701 77641276 1.04
tpcds_q79/duckdb:parquet 30411832 30286225 1.00
tpcds_q80/duckdb:parquet 44050573 45077874 0.98
tpcds_q81/duckdb:parquet 35150049 34680032 1.01
tpcds_q82/duckdb:parquet 16681434 16727637 1.00
tpcds_q83/duckdb:parquet 18509528 18538199 1.00
tpcds_q84/duckdb:parquet 21331916 21708465 0.98
tpcds_q85/duckdb:parquet 42213145 41575182 1.02
tpcds_q86/duckdb:parquet 13772100 13622809 1.01
tpcds_q87/duckdb:parquet 41680264 38924626 1.07
tpcds_q88/duckdb:parquet 53847189 54401520 0.99
tpcds_q89/duckdb:parquet 20532326 22070631 0.93
tpcds_q90/duckdb:parquet 8248267 8388918 0.98
tpcds_q91/duckdb:parquet 25935454 25112678 1.03
tpcds_q92/duckdb:parquet 12970033 13081472 0.99
tpcds_q93/duckdb:parquet 32136193 31978268 1.00
tpcds_q94/duckdb:parquet 17668011 17979531 0.98
tpcds_q95/duckdb:parquet 145386593 145323157 1.00
tpcds_q96/duckdb:parquet 10907583 10587152 1.03
tpcds_q97/duckdb:parquet 38583858 38200692 1.01
tpcds_q98/duckdb:parquet 24747438 24085761 1.03
tpcds_q99/duckdb:parquet 20052976 20008577 1.00
duckdb / duckdb (0.990x ➖, 2↑ 1↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
tpcds_q01/duckdb:duckdb 22350897 22557835 0.99
tpcds_q02/duckdb:duckdb 19418091 20600871 0.94
tpcds_q03/duckdb:duckdb 10358822 10346974 1.00
tpcds_q04/duckdb:duckdb 180655819 181342684 1.00
tpcds_q05/duckdb:duckdb 21736670 22112862 0.98
tpcds_q06/duckdb:duckdb 27150464 28684926 0.95
tpcds_q07/duckdb:duckdb 40219397 40999634 0.98
tpcds_q08/duckdb:duckdb 120249681 119627529 1.01
tpcds_q09/duckdb:duckdb 20356521 20795407 0.98
tpcds_q10/duckdb:duckdb 27639731 27456422 1.01
tpcds_q11/duckdb:duckdb 94521116 95851409 0.99
tpcds_q12/duckdb:duckdb 13811155 13860317 1.00
tpcds_q13/duckdb:duckdb 25929743 26104238 0.99
tpcds_q14/duckdb:duckdb 93318008 94279856 0.99
tpcds_q15/duckdb:duckdb 24816294 24638169 1.01
tpcds_q16/duckdb:duckdb 20656608 19001898 1.09
tpcds_q17/duckdb:duckdb 25106365 25348615 0.99
tpcds_q18/duckdb:duckdb 47738251 47149337 1.01
tpcds_q19/duckdb:duckdb 18962970 19368232 0.98
tpcds_q20/duckdb:duckdb 14107789 14089111 1.00
tpcds_q21/duckdb:duckdb 7416161 7555847 0.98
tpcds_q22/duckdb:duckdb 64459154 61866005 1.04
tpcds_q23/duckdb:duckdb 🚨 83622519 75577479 1.11
tpcds_q24/duckdb:duckdb 25204012 25381978 0.99
tpcds_q25/duckdb:duckdb 18409508 18786336 0.98
tpcds_q26/duckdb:duckdb 28118544 28676864 0.98
tpcds_q27/duckdb:duckdb 41186571 43337548 0.95
tpcds_q28/duckdb:duckdb 24782376 26225311 0.94
tpcds_q29/duckdb:duckdb 22839905 24301530 0.94
tpcds_q30/duckdb:duckdb 31119096 30758308 1.01
tpcds_q31/duckdb:duckdb 50454564 51633696 0.98
tpcds_q32/duckdb:duckdb 7937970 7865922 1.01
tpcds_q33/duckdb:duckdb 15246541 16500647 0.92
tpcds_q34/duckdb:duckdb 18384913 18756249 0.98
tpcds_q35/duckdb:duckdb 36155299 37633527 0.96
tpcds_q36/duckdb:duckdb 69631931 70590728 0.99
tpcds_q37/duckdb:duckdb 8723030 8854317 0.99
tpcds_q38/duckdb:duckdb 33879836 33263664 1.02
tpcds_q39/duckdb:duckdb 27699120 29033490 0.95
tpcds_q40/duckdb:duckdb 14671895 15411903 0.95
tpcds_q41/duckdb:duckdb 9444557 9915227 0.95
tpcds_q42/duckdb:duckdb 9485163 8859883 1.07
tpcds_q43/duckdb:duckdb 14836860 14731633 1.01
tpcds_q44/duckdb:duckdb 15614891 15776405 0.99
tpcds_q45/duckdb:duckdb 18699735 18702580 1.00
tpcds_q46/duckdb:duckdb 38043016 38946159 0.98
tpcds_q47/duckdb:duckdb 46542098 45387194 1.03
tpcds_q48/duckdb:duckdb 25129185 25144458 1.00
tpcds_q49/duckdb:duckdb 🚀 19742089 22074486 0.89
tpcds_q50/duckdb:duckdb 15917758 16268916 0.98
tpcds_q51/duckdb:duckdb 99121588 104258211 0.95
tpcds_q52/duckdb:duckdb 9645603 10450946 0.92
tpcds_q53/duckdb:duckdb 17333155 17738817 0.98
tpcds_q54/duckdb:duckdb 19049869 18446525 1.03
tpcds_q55/duckdb:duckdb 🚀 8918216 9990985 0.89
tpcds_q56/duckdb:duckdb 16425069 17132716 0.96
tpcds_q57/duckdb:duckdb 36484220 36591510 1.00
tpcds_q58/duckdb:duckdb 16774761 17155991 0.98
tpcds_q59/duckdb:duckdb 36876940 37191326 0.99
tpcds_q60/duckdb:duckdb 19404194 18739368 1.04
tpcds_q61/duckdb:duckdb 16210102 16894393 0.96
tpcds_q62/duckdb:duckdb 9953808 9721248 1.02
tpcds_q63/duckdb:duckdb 16536449 16114039 1.03
tpcds_q64/duckdb:duckdb 57767617 58101694 0.99
tpcds_q65/duckdb:duckdb 36637031 36223255 1.01
tpcds_q66/duckdb:duckdb 26658262 26202766 1.02
tpcds_q67/duckdb:duckdb 135624609 135389238 1.00
tpcds_q68/duckdb:duckdb 26040136 27461310 0.95
tpcds_q69/duckdb:duckdb 27106495 28430773 0.95
tpcds_q70/duckdb:duckdb 16969676 16936078 1.00
tpcds_q71/duckdb:duckdb 16029031 16676159 0.96
tpcds_q72/duckdb:duckdb 45795204 46016631 1.00
tpcds_q73/duckdb:duckdb 13749975 14303885 0.96
tpcds_q74/duckdb:duckdb 144954143 145936020 0.99
tpcds_q75/duckdb:duckdb 46687628 47530870 0.98
tpcds_q76/duckdb:duckdb 14808103 14915786 0.99
tpcds_q77/duckdb:duckdb 15082637 15603176 0.97
tpcds_q78/duckdb:duckdb 65918128 64128672 1.03
tpcds_q79/duckdb:duckdb 19967158 20488420 0.97
tpcds_q80/duckdb:duckdb 32220789 31053293 1.04
tpcds_q81/duckdb:duckdb 39689710 40159214 0.99
tpcds_q82/duckdb:duckdb 10561523 10148822 1.04
tpcds_q83/duckdb:duckdb 11212035 11067675 1.01
tpcds_q84/duckdb:duckdb 14613015 14785801 0.99
tpcds_q85/duckdb:duckdb 26214435 25896768 1.01
tpcds_q86/duckdb:duckdb 12048338 12135436 0.99
tpcds_q87/duckdb:duckdb 37660283 35668990 1.06
tpcds_q88/duckdb:duckdb 29447892 30622417 0.96
tpcds_q89/duckdb:duckdb 22482589 22254923 1.01
tpcds_q90/duckdb:duckdb 6207770 6191273 1.00
tpcds_q91/duckdb:duckdb 15101736 14669390 1.03
tpcds_q92/duckdb:duckdb 9677316 9925025 0.98
tpcds_q93/duckdb:duckdb 23663667 23785440 0.99
tpcds_q94/duckdb:duckdb 14474058 14490642 1.00
tpcds_q95/duckdb:duckdb 130737841 130476124 1.00
tpcds_q96/duckdb:duckdb 6021191 5935466 1.01
tpcds_q97/duckdb:duckdb 32048778 32996438 0.97
tpcds_q98/duckdb:duckdb 20160579 20999153 0.96
tpcds_q99/duckdb:duckdb 16738308 16531355 1.01

File Size Changes (6 files changed, -0.0% overall, 3↑ 3↓)
File Scale Format Base HEAD Change %
catalog_page.vortex 1.0 vortex-file-compressed 572.19 KB 572.45 KB +272 B +0.0%
customer_address.vortex 1.0 vortex-file-compressed 827.03 KB 827.32 KB +296 B +0.0%
item.vortex 1.0 vortex-compact 994.61 KB 994.62 KB +8 B +0.0%
time_dim.vortex 1.0 vortex-file-compressed 380.85 KB 380.74 KB 112 B -0.0%
item.vortex 1.0 vortex-file-compressed 1.66 MB 1.66 MB 5.16 KB -0.3%
customer.vortex 1.0 vortex-file-compressed 4.27 MB 4.18 MB 91.37 KB -2.1%

Totals:

  • vortex-compact: 207.50 MB → 207.50 MB (+0.0%)
  • vortex-file-compressed: 271.85 MB → 271.76 MB (-0.0%)

@github-actions

Copy link
Copy Markdown
Contributor

File Sizes: TPC-DS SF=1 on NVME

No file size changes detected.

@github-actions

github-actions Bot commented May 18, 2026

Copy link
Copy Markdown
Contributor

Benchmarks: FineWeb S3

Verdict: No clear signal (environment too noisy confidence)
Attributed Vortex impact: +0.5%
Engines: DataFusion No clear signal (-0.1%, environment too noisy confidence) · DuckDB No clear signal (+1.1%, environment too noisy confidence)
Vortex (geomean): 1.111x ➖
Parquet (geomean): 1.105x ➖
Shifts: Parquet (control) +10.5% · Median polish +5.9%

How to read Verdict and Engines
  • Verdict: Overall PR-level signal after subtracting baseline drift estimated from Parquet control rows. It can be Likely improvement, Likely regression, or No clear signal.
  • Engines: Per-engine attribution. DataFusion is compared against DataFusion/Parquet controls; DuckDB is compared against DuckDB/Parquet controls. This answers whether each engine improved or regressed independently.
  • Confidence: Based on directional consistency, share of rows above the noise floor, and control-run noise.

datafusion / vortex-file-compressed (1.167x ➖, 0↑ 2↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
fineweb_q00/datafusion:vortex-file-compressed 35958987 30883560 1.16
fineweb_q01/datafusion:vortex-file-compressed 🚨 735526374 461488852 1.59
fineweb_q02/datafusion:vortex-file-compressed 🚨 847063712 520747893 1.63
fineweb_q03/datafusion:vortex-file-compressed 1288056822 1076432719 1.20
fineweb_q04/datafusion:vortex-file-compressed 1182120255 1172548015 1.01
fineweb_q05/datafusion:vortex-file-compressed 1101507428 1094060137 1.01
fineweb_q06/datafusion:vortex-file-compressed 1288824207 1248839443 1.03
fineweb_q07/datafusion:vortex-file-compressed 1083422070 1086046595 1.00
fineweb_q08/datafusion:vortex-file-compressed 480907907 452485197 1.06
datafusion / vortex-compact (1.077x ➖, 1↑ 2↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
fineweb_q00/datafusion:vortex-compact 🚀 28142103 40530117 0.69
fineweb_q01/datafusion:vortex-compact 🚨 695935923 457800328 1.52
fineweb_q02/datafusion:vortex-compact 🚨 1030686676 608412771 1.69
fineweb_q03/datafusion:vortex-compact 1357295612 1360087126 1.00
fineweb_q04/datafusion:vortex-compact 1703717576 1630996945 1.04
fineweb_q05/datafusion:vortex-compact 1385012062 1398179891 0.99
fineweb_q06/datafusion:vortex-compact 1314155636 1265839426 1.04
fineweb_q07/datafusion:vortex-compact 1145344538 1132633703 1.01
fineweb_q08/datafusion:vortex-compact 382652805 381698093 1.00
datafusion / parquet (1.122x ➖, 0↑ 0↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
fineweb_q00/datafusion:parquet 1269376192 1044535919 1.22
fineweb_q01/datafusion:parquet 2059720743 1805287023 1.14
fineweb_q02/datafusion:parquet 1804017326 1870215193 0.96
fineweb_q03/datafusion:parquet 1979985500 1756257747 1.13
fineweb_q04/datafusion:parquet 2027457566 1761046079 1.15
fineweb_q05/datafusion:parquet 2010220947 1737683768 1.16
fineweb_q06/datafusion:parquet 1863567193 1762406897 1.06
fineweb_q07/datafusion:parquet 2028157867 1667818289 1.22
fineweb_q08/datafusion:parquet 1854885670 1700575811 1.09
duckdb / vortex-file-compressed (1.073x ➖, 0↑ 0↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
fineweb_q00/duckdb:vortex-file-compressed 92953302 82158577 1.13
fineweb_q01/duckdb:vortex-file-compressed 576319420 569169220 1.01
fineweb_q02/duckdb:vortex-file-compressed 573556652 599749016 0.96
fineweb_q03/duckdb:vortex-file-compressed 1528597231 1287321540 1.19
fineweb_q04/duckdb:vortex-file-compressed 1544710909 1405517654 1.10
fineweb_q05/duckdb:vortex-file-compressed 1359702440 1390391979 0.98
fineweb_q06/duckdb:vortex-file-compressed 1890962355 1470342136 1.29
fineweb_q07/duckdb:vortex-file-compressed 1429256747 1368049810 1.04
fineweb_q08/duckdb:vortex-file-compressed 600937462 599063104 1.00
duckdb / vortex-compact (1.129x ➖, 0↑ 1↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
fineweb_q00/duckdb:vortex-compact 99270708 80237184 1.24
fineweb_q01/duckdb:vortex-compact 651484463 569504570 1.14
fineweb_q02/duckdb:vortex-compact 643706916 584174010 1.10
fineweb_q03/duckdb:vortex-compact 1744506866 1729571553 1.01
fineweb_q04/duckdb:vortex-compact 1975742141 1852282475 1.07
fineweb_q05/duckdb:vortex-compact 1750610766 1615213383 1.08
fineweb_q06/duckdb:vortex-compact 1594387489 1599584890 1.00
fineweb_q07/duckdb:vortex-compact 1415087109 1392316063 1.02
fineweb_q08/duckdb:vortex-compact 🚨 835172418 518140800 1.61
duckdb / parquet (1.089x ➖, 0↑ 0↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
fineweb_q00/duckdb:parquet 1178559233 1069987287 1.10
fineweb_q01/duckdb:parquet 1562103059 1287776565 1.21
fineweb_q02/duckdb:parquet 1358333709 1313681438 1.03
fineweb_q03/duckdb:parquet 3787244244 3588334794 1.06
fineweb_q04/duckdb:parquet 1938908207 1892643285 1.02
fineweb_q05/duckdb:parquet 2388552772 2163723589 1.10
fineweb_q06/duckdb:parquet 4451326975 4346937825 1.02
fineweb_q07/duckdb:parquet 3103727529 2768725270 1.12
fineweb_q08/duckdb:parquet 1278141698 1126267002 1.13

@github-actions

github-actions Bot commented May 18, 2026

Copy link
Copy Markdown
Contributor

Benchmarks: Statistical and Population Genetics

Verdict: No clear signal (low confidence)
Attributed Vortex impact: -0.9%
Engines: DuckDB No clear signal (-0.9%, low confidence)
Vortex (geomean): 1.019x ➖
Parquet (geomean): 1.028x ➖
Shifts: Parquet (control) +2.8% · Median polish +1.9%

How to read Verdict and Engines
  • Verdict: Overall PR-level signal after subtracting baseline drift estimated from Parquet control rows. It can be Likely improvement, Likely regression, or No clear signal.
  • Engines: Per-engine attribution. DataFusion is compared against DataFusion/Parquet controls; DuckDB is compared against DuckDB/Parquet controls. This answers whether each engine improved or regressed independently.
  • Confidence: Based on directional consistency, share of rows above the noise floor, and control-run noise.

duckdb / vortex-file-compressed (1.016x ➖, 0↑ 0↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
statpopgen_q00/duckdb:vortex-file-compressed 12424952 11783047 1.05
statpopgen_q01/duckdb:vortex-file-compressed 26586551 25617444 1.04
statpopgen_q02/duckdb:vortex-file-compressed 558985939 531547269 1.05
statpopgen_q03/duckdb:vortex-file-compressed 1069297688 1052749228 1.02
statpopgen_q04/duckdb:vortex-file-compressed 1077257303 1071431130 1.01
statpopgen_q05/duckdb:vortex-file-compressed 502384883 519181529 0.97
statpopgen_q06/duckdb:vortex-file-compressed 1527880491 1537534260 0.99
statpopgen_q07/duckdb:vortex-file-compressed 203104178 197671841 1.03
statpopgen_q08/duckdb:vortex-file-compressed 237008637 230350456 1.03
statpopgen_q09/duckdb:vortex-file-compressed 839605430 862797801 0.97
statpopgen_q10/duckdb:vortex-file-compressed 2598868915 2544780095 1.02
duckdb / vortex-compact (1.021x ➖, 0↑ 0↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
statpopgen_q00/duckdb:vortex-compact 11895379 11501958 1.03
statpopgen_q01/duckdb:vortex-compact 218283904 217466403 1.00
statpopgen_q02/duckdb:vortex-compact 594140686 552666761 1.08
statpopgen_q03/duckdb:vortex-compact 1171895339 1144901591 1.02
statpopgen_q04/duckdb:vortex-compact 1163598921 1146627287 1.01
statpopgen_q05/duckdb:vortex-compact 566404816 569146572 1.00
statpopgen_q06/duckdb:vortex-compact 1514039045 1495285310 1.01
statpopgen_q07/duckdb:vortex-compact 917612652 888119705 1.03
statpopgen_q08/duckdb:vortex-compact 943173608 931985973 1.01
statpopgen_q09/duckdb:vortex-compact 921960177 905457786 1.02
statpopgen_q10/duckdb:vortex-compact 2630319464 2591539238 1.01
duckdb / parquet (1.028x ➖, 0↑ 0↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
statpopgen_q00/duckdb:parquet 308757558 299886220 1.03
statpopgen_q01/duckdb:parquet 389862065 375649704 1.04
statpopgen_q02/duckdb:parquet 769813902 754473568 1.02
statpopgen_q03/duckdb:parquet 1198144682 1186046166 1.01
statpopgen_q04/duckdb:parquet 1211191817 1191691285 1.02
statpopgen_q05/duckdb:parquet 825533616 808359447 1.02
statpopgen_q06/duckdb:parquet 1438393416 1408593947 1.02
statpopgen_q07/duckdb:parquet 880425306 833940477 1.06
statpopgen_q08/duckdb:parquet 882103798 843689315 1.05
statpopgen_q09/duckdb:parquet 1028678508 1000944211 1.03
statpopgen_q10/duckdb:parquet 2237545979 2192663517 1.02

File Size Changes (1 files changed, +0.0% overall, 1↑ 0↓)
File Scale Format Base HEAD Change %
gnomad.genomes.v3.1.2.hgdp_tgp.chr21.vortex 100000 vortex-file-compressed 1.96 GB 1.96 GB +20.67 KB +0.0%

Totals:

  • vortex-compact: 959.62 MB → 959.62 MB (0.0%)
  • vortex-file-compressed: 1.96 GB → 1.96 GB (+0.0%)

@github-actions

Copy link
Copy Markdown
Contributor

File Sizes: Statistical and Population Genetics

No file size changes detected.

@github-actions

github-actions Bot commented May 18, 2026

Copy link
Copy Markdown
Contributor

Benchmarks: TPC-H SF=10 on NVME

Verdict: No clear signal (low confidence)
Attributed Vortex impact: +0.5%
Engines: DataFusion No clear signal (-0.4%, environment too noisy confidence) · DuckDB No clear signal (+1.4%, low confidence)
Vortex (geomean): 1.074x ➖
Parquet (geomean): 1.066x ➖
Shifts: Parquet (control) +6.6% · Median polish +5.1%

How to read Verdict and Engines
  • Verdict: Overall PR-level signal after subtracting baseline drift estimated from Parquet control rows. It can be Likely improvement, Likely regression, or No clear signal.
  • Engines: Per-engine attribution. DataFusion is compared against DataFusion/Parquet controls; DuckDB is compared against DuckDB/Parquet controls. This answers whether each engine improved or regressed independently.
  • Confidence: Based on directional consistency, share of rows above the noise floor, and control-run noise.

datafusion / vortex-file-compressed (1.093x ➖, 0↑ 9↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
tpch_q01/datafusion:vortex-file-compressed 🚨 464504179 392333159 1.18
tpch_q02/datafusion:vortex-file-compressed 🚨 131200630 109941291 1.19
tpch_q03/datafusion:vortex-file-compressed 🚨 267274241 210551036 1.27
tpch_q04/datafusion:vortex-file-compressed 🚨 123180006 110936910 1.11
tpch_q05/datafusion:vortex-file-compressed 🚨 451764942 377268391 1.20
tpch_q06/datafusion:vortex-file-compressed 39080881 37842906 1.03
tpch_q07/datafusion:vortex-file-compressed 529522296 502479913 1.05
tpch_q08/datafusion:vortex-file-compressed 384871100 367964431 1.05
tpch_q09/datafusion:vortex-file-compressed 🚨 789155960 648329667 1.22
tpch_q10/datafusion:vortex-file-compressed 241381660 229154899 1.05
tpch_q11/datafusion:vortex-file-compressed 87965123 84135005 1.05
tpch_q12/datafusion:vortex-file-compressed 116603881 112828031 1.03
tpch_q13/datafusion:vortex-file-compressed 224077873 215882807 1.04
tpch_q14/datafusion:vortex-file-compressed 51854893 51439867 1.01
tpch_q15/datafusion:vortex-file-compressed 98856101 99480527 0.99
tpch_q16/datafusion:vortex-file-compressed 78382109 75569295 1.04
tpch_q17/datafusion:vortex-file-compressed 🚨 724277237 642105603 1.13
tpch_q18/datafusion:vortex-file-compressed 938431866 868663360 1.08
tpch_q19/datafusion:vortex-file-compressed 63220998 57473646 1.10
tpch_q20/datafusion:vortex-file-compressed 163473785 165405661 0.99
tpch_q21/datafusion:vortex-file-compressed 🚨 781872843 667311633 1.17
tpch_q22/datafusion:vortex-file-compressed 🚨 74375757 66708601 1.11
datafusion / vortex-compact (1.078x ➖, 0↑ 5↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
tpch_q01/datafusion:vortex-compact 456669095 441216717 1.04
tpch_q02/datafusion:vortex-compact 127153563 115880580 1.10
tpch_q03/datafusion:vortex-compact 219879283 210549477 1.04
tpch_q04/datafusion:vortex-compact 121825608 118148596 1.03
tpch_q05/datafusion:vortex-compact 398916950 379880029 1.05
tpch_q06/datafusion:vortex-compact 65692798 59933674 1.10
tpch_q07/datafusion:vortex-compact 🚨 580984507 524713091 1.11
tpch_q08/datafusion:vortex-compact 🚨 457339815 376222438 1.22
tpch_q09/datafusion:vortex-compact 722082426 660220180 1.09
tpch_q10/datafusion:vortex-compact 265130254 248079961 1.07
tpch_q11/datafusion:vortex-compact 86140086 86714446 0.99
tpch_q12/datafusion:vortex-compact 161427100 155513219 1.04
tpch_q13/datafusion:vortex-compact 271144816 265165747 1.02
tpch_q14/datafusion:vortex-compact 74042241 69394576 1.07
tpch_q15/datafusion:vortex-compact 156443219 156135373 1.00
tpch_q16/datafusion:vortex-compact 81695541 78545932 1.04
tpch_q17/datafusion:vortex-compact 🚨 780207909 652645312 1.20
tpch_q18/datafusion:vortex-compact 🚨 1117344557 876270430 1.28
tpch_q19/datafusion:vortex-compact 124108757 119640856 1.04
tpch_q20/datafusion:vortex-compact 196490009 186092067 1.06
tpch_q21/datafusion:vortex-compact 🚨 753902246 680955868 1.11
tpch_q22/datafusion:vortex-compact 77420833 71909544 1.08
datafusion / parquet (1.105x ❌, 0↑ 9↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
tpch_q01/datafusion:parquet 515008801 476981869 1.08
tpch_q02/datafusion:parquet 188856865 177435466 1.06
tpch_q03/datafusion:parquet 301203908 285342156 1.06
tpch_q04/datafusion:parquet 135470146 130304243 1.04
tpch_q05/datafusion:parquet 471798139 444781036 1.06
tpch_q06/datafusion:parquet 130469335 125903665 1.04
tpch_q07/datafusion:parquet 645864321 615718830 1.05
tpch_q08/datafusion:parquet 492570240 473256610 1.04
tpch_q09/datafusion:parquet 802218877 765424145 1.05
tpch_q10/datafusion:parquet 🚨 572057983 504946890 1.13
tpch_q11/datafusion:parquet 🚨 137955344 118201574 1.17
tpch_q12/datafusion:parquet 🚨 219873814 198422157 1.11
tpch_q13/datafusion:parquet 🚨 384979159 333849823 1.15
tpch_q14/datafusion:parquet 🚨 195424240 169068003 1.16
tpch_q15/datafusion:parquet 🚨 336542922 245268172 1.37
tpch_q16/datafusion:parquet 🚨 157315026 128511005 1.22
tpch_q17/datafusion:parquet 🚨 918801839 694982362 1.32
tpch_q18/datafusion:parquet 925110184 902942766 1.02
tpch_q19/datafusion:parquet 265300632 264633016 1.00
tpch_q20/datafusion:parquet 309359261 288576205 1.07
tpch_q21/datafusion:parquet 🚨 777945123 703604149 1.11
tpch_q22/datafusion:parquet 237079828 220143150 1.08
datafusion / arrow (1.133x ❌, 0↑ 14↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
tpch_q01/datafusion:arrow 🚨 728663048 593223903 1.23
tpch_q02/datafusion:arrow 🚨 204228387 166272125 1.23
tpch_q03/datafusion:arrow 🚨 601355332 459034531 1.31
tpch_q04/datafusion:arrow 🚨 435398431 330639737 1.32
tpch_q05/datafusion:arrow 🚨 1019054826 924559086 1.10
tpch_q06/datafusion:arrow 295678634 278398690 1.06
tpch_q07/datafusion:arrow 🚨 1310394638 1181789428 1.11
tpch_q08/datafusion:arrow 🚨 1300293088 1140641021 1.14
tpch_q09/datafusion:arrow 1395979921 1352252081 1.03
tpch_q10/datafusion:arrow 🚨 690427768 600662696 1.15
tpch_q11/datafusion:arrow 146673397 139737328 1.05
tpch_q12/datafusion:arrow 🚨 804388395 690640491 1.16
tpch_q13/datafusion:arrow 539774367 508886904 1.06
tpch_q14/datafusion:arrow 359816983 329671076 1.09
tpch_q15/datafusion:arrow 🚨 782352817 690957564 1.13
tpch_q16/datafusion:arrow 108611182 106613218 1.02
tpch_q17/datafusion:arrow 🚨 1519948931 1348271885 1.13
tpch_q18/datafusion:arrow 🚨 2315686118 1930015791 1.20
tpch_q19/datafusion:arrow 🚨 564458615 495028745 1.14
tpch_q20/datafusion:arrow 🚨 607401940 490315025 1.24
tpch_q21/datafusion:arrow 3154156848 3020959015 1.04
tpch_q22/datafusion:arrow 138305759 132934304 1.04
duckdb / vortex-file-compressed (1.094x ➖, 0↑ 7↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
tpch_q01/duckdb:vortex-file-compressed 185161589 169932022 1.09
tpch_q02/duckdb:vortex-file-compressed 🚨 64180784 52597674 1.22
tpch_q03/duckdb:vortex-file-compressed 🚨 166246852 120827751 1.38
tpch_q04/duckdb:vortex-file-compressed 🚨 204912393 158612379 1.29
tpch_q05/duckdb:vortex-file-compressed 🚨 177253147 136305388 1.30
tpch_q06/duckdb:vortex-file-compressed 🚨 38636119 34782216 1.11
tpch_q07/duckdb:vortex-file-compressed 🚨 175785966 131776233 1.33
tpch_q08/duckdb:vortex-file-compressed 178163219 171077506 1.04
tpch_q09/duckdb:vortex-file-compressed 397242130 397053540 1.00
tpch_q10/duckdb:vortex-file-compressed 198811482 189317509 1.05
tpch_q11/duckdb:vortex-file-compressed 33270636 32373162 1.03
tpch_q12/duckdb:vortex-file-compressed 101302199 100046236 1.01
tpch_q13/duckdb:vortex-file-compressed 274855030 272296528 1.01
tpch_q14/duckdb:vortex-file-compressed 54587045 53366039 1.02
tpch_q15/duckdb:vortex-file-compressed 88894320 87519762 1.02
tpch_q16/duckdb:vortex-file-compressed 79120057 76116030 1.04
tpch_q17/duckdb:vortex-file-compressed 94124373 92633253 1.02
tpch_q18/duckdb:vortex-file-compressed 301002846 289121950 1.04
tpch_q19/duckdb:vortex-file-compressed 80373185 79747041 1.01
tpch_q20/duckdb:vortex-file-compressed 143976581 141755983 1.02
tpch_q21/duckdb:vortex-file-compressed 🚨 567870742 489421633 1.16
tpch_q22/duckdb:vortex-file-compressed 64946226 64148714 1.01
duckdb / vortex-compact (1.032x ➖, 0↑ 1↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
tpch_q01/duckdb:vortex-compact 234998243 228877581 1.03
tpch_q02/duckdb:vortex-compact 58419049 56466261 1.03
tpch_q03/duckdb:vortex-compact 143801348 135557575 1.06
tpch_q04/duckdb:vortex-compact 178516621 171321101 1.04
tpch_q05/duckdb:vortex-compact 179144747 167375272 1.07
tpch_q06/duckdb:vortex-compact 🚨 63478823 54945481 1.16
tpch_q07/duckdb:vortex-compact 189871961 173554493 1.09
tpch_q08/duckdb:vortex-compact 200379754 188999444 1.06
tpch_q09/duckdb:vortex-compact 428418799 425625558 1.01
tpch_q10/duckdb:vortex-compact 219751779 220572131 1.00
tpch_q11/duckdb:vortex-compact 38440768 39072609 0.98
tpch_q12/duckdb:vortex-compact 162956458 162407901 1.00
tpch_q13/duckdb:vortex-compact 330047970 323803693 1.02
tpch_q14/duckdb:vortex-compact 74062936 71721086 1.03
tpch_q15/duckdb:vortex-compact 116384132 114878321 1.01
tpch_q16/duckdb:vortex-compact 83407567 82076582 1.02
tpch_q17/duckdb:vortex-compact 111008926 107763204 1.03
tpch_q18/duckdb:vortex-compact 300109387 289549531 1.04
tpch_q19/duckdb:vortex-compact 100094679 96079695 1.04
tpch_q20/duckdb:vortex-compact 175606544 176938932 0.99
tpch_q21/duckdb:vortex-compact 518286036 510526198 1.02
tpch_q22/duckdb:vortex-compact 71448481 71793175 1.00
duckdb / parquet (1.029x ➖, 0↑ 1↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
tpch_q01/duckdb:parquet 270355838 269853392 1.00
tpch_q02/duckdb:parquet 105055285 102737003 1.02
tpch_q03/duckdb:parquet 210822225 211483198 1.00
tpch_q04/duckdb:parquet 133495559 133962320 1.00
tpch_q05/duckdb:parquet 231552688 223656726 1.04
tpch_q06/duckdb:parquet 75745911 73552273 1.03
tpch_q07/duckdb:parquet 189006064 184876259 1.02
tpch_q08/duckdb:parquet 268622079 264438635 1.02
tpch_q09/duckdb:parquet 520202188 474240282 1.10
tpch_q10/duckdb:parquet 647855582 623120871 1.04
tpch_q11/duckdb:parquet 68131641 69894008 0.97
tpch_q12/duckdb:parquet 133739673 130473285 1.03
tpch_q13/duckdb:parquet 446218669 443768624 1.01
tpch_q14/duckdb:parquet 182762611 182112529 1.00
tpch_q15/duckdb:parquet 104493091 104857978 1.00
tpch_q16/duckdb:parquet 168769239 164223342 1.03
tpch_q17/duckdb:parquet 183720521 182534140 1.01
tpch_q18/duckdb:parquet 373961192 360134482 1.04
tpch_q19/duckdb:parquet 293472194 288539347 1.02
tpch_q20/duckdb:parquet 247170490 231671904 1.07
tpch_q21/duckdb:parquet 🚨 640687673 550282165 1.16
tpch_q22/duckdb:parquet 316444456 295146138 1.07
duckdb / duckdb (1.007x ➖, 0↑ 0↓)
name PR 8c3e823 (ns) base bfe88b8 (ns) ratio (PR/base)
tpch_q01/duckdb:duckdb 120302907 120498694 1.00
tpch_q02/duckdb:duckdb 49980912 50213031 1.00
tpch_q03/duckdb:duckdb 106101816 103642663 1.02
tpch_q04/duckdb:duckdb 140079422 140567544 1.00
tpch_q05/duckdb:duckdb 122660388 119418765 1.03
tpch_q06/duckdb:duckdb 44612630 44781411 1.00
tpch_q07/duckdb:duckdb 91576282 92411479 0.99
tpch_q08/duckdb:duckdb 119532945 119285294 1.00
tpch_q09/duckdb:duckdb 283900773 281912487 1.01
tpch_q10/duckdb:duckdb 216778541 214565000 1.01
tpch_q11/duckdb:duckdb 19621160 19100844 1.03
tpch_q12/duckdb:duckdb 91196922 91531958 1.00
tpch_q13/duckdb:duckdb 241780608 233830475 1.03
tpch_q14/duckdb:duckdb 78321099 78734102 0.99
tpch_q15/duckdb:duckdb 83177793 81732325 1.02
tpch_q16/duckdb:duckdb 77721186 76088412 1.02
tpch_q17/duckdb:duckdb 88751861 88127980 1.01
tpch_q18/duckdb:duckdb 232915654 231594299 1.01
tpch_q19/duckdb:duckdb 125347588 123899255 1.01
tpch_q20/duckdb:duckdb 117963742 118479980 1.00
tpch_q21/duckdb:duckdb 307223888 300816185 1.02
tpch_q22/duckdb:duckdb 68377748 69426340 0.98

File Size Changes (27 files changed, -0.0% overall, 14↑ 13↓)
File Scale Format Base HEAD Change %
part_1.vortex 10.0 vortex-file-compressed 24.01 MB 24.62 MB +616.55 KB +2.5%
orders_0.vortex 10.0 vortex-file-compressed 144.11 MB 144.96 MB +870.10 KB +0.6%
part_0.vortex 10.0 vortex-compact 16.87 MB 16.94 MB +73.74 KB +0.4%
supplier_0.vortex 10.0 vortex-file-compressed 5.70 MB 5.71 MB +13.19 KB +0.2%
lineitem_0.vortex 10.0 vortex-file-compressed 134.11 MB 134.32 MB +212.73 KB +0.2%
lineitem_1.vortex 10.0 vortex-file-compressed 133.66 MB 133.79 MB +133.01 KB +0.1%
lineitem_7.vortex 10.0 vortex-file-compressed 133.57 MB 133.65 MB +76.88 KB +0.1%
partsupp_0.vortex 10.0 vortex-file-compressed 120.25 MB 120.31 MB +61.39 KB +0.0%
partsupp_1.vortex 10.0 vortex-file-compressed 120.29 MB 120.33 MB +38.22 KB +0.0%
lineitem_4.vortex 10.0 vortex-file-compressed 134.12 MB 134.16 MB +42.10 KB +0.0%
lineitem_12.vortex 10.0 vortex-file-compressed 134.12 MB 134.16 MB +41.98 KB +0.0%
lineitem_6.vortex 10.0 vortex-file-compressed 132.85 MB 132.88 MB +30.36 KB +0.0%
lineitem_2.vortex 10.0 vortex-file-compressed 134.04 MB 134.07 MB +28.27 KB +0.0%
part_0.vortex 10.0 vortex-file-compressed 24.68 MB 24.68 MB +1.21 KB +0.0%
lineitem_11.vortex 10.0 vortex-file-compressed 134.31 MB 134.30 MB 14.59 KB -0.0%
lineitem_9.vortex 10.0 vortex-file-compressed 134.26 MB 134.22 MB 43.75 KB -0.0%
customer_0.vortex 10.0 vortex-compact 74.12 MB 74.09 MB 25.03 KB -0.0%
lineitem_5.vortex 10.0 vortex-file-compressed 133.58 MB 133.51 MB 69.98 KB -0.1%
customer_0.vortex 10.0 vortex-file-compressed 88.53 MB 88.48 MB 48.90 KB -0.1%
lineitem_3.vortex 10.0 vortex-file-compressed 133.28 MB 133.19 MB 98.57 KB -0.1%
lineitem_10.vortex 10.0 vortex-file-compressed 134.18 MB 134.07 MB 107.93 KB -0.1%
lineitem_8.vortex 10.0 vortex-file-compressed 133.56 MB 133.29 MB 270.16 KB -0.2%
partsupp_0.vortex 10.0 vortex-compact 104.77 MB 104.52 MB 258.95 KB -0.2%
orders_2.vortex 10.0 vortex-file-compressed 146.24 MB 145.89 MB 366.36 KB -0.2%
orders_1.vortex 10.0 vortex-file-compressed 146.08 MB 145.63 MB 459.13 KB -0.3%
partsupp_1.vortex 10.0 vortex-compact 105.21 MB 104.75 MB 479.20 KB -0.4%
part_1.vortex 10.0 vortex-compact 17.02 MB 16.69 MB 334.57 KB -1.9%

Totals:

  • vortex-compact: 1.93 GB → 1.93 GB (-0.1%)
  • vortex-file-compressed: 2.50 GB → 2.50 GB (+0.0%)

@github-actions

Copy link
Copy Markdown
Contributor

File Sizes: TPC-H SF=10 on NVME

No file size changes detected.

@github-actions

Copy link
Copy Markdown
Contributor

This PR has been marked as stale because it has been open for 14 days with no activity. Please comment or remove the stale label if you wish to keep it active, otherwise it will be closed in 7 days

@github-actions github-actions Bot added the stale This PR is stale and will be auto-closed soon label Jun 27, 2026
@robert3005 robert3005 removed the stale This PR is stale and will be auto-closed soon label Jul 2, 2026
@AdamGS AdamGS closed this Jul 10, 2026
@robert3005 robert3005 reopened this Jul 30, 2026
robert3005 pushed a commit that referenced this pull request Jul 30, 2026
…mpressed arrays (#8828)

## Summary

Stacked on #7814 (the `trace_op` execution/optimization tracing
harness).

Builds out trace-test coverage for how take/filter/compare/like reduce
and execute over complex arrays, using the harness from the base PR:

**vortex-array** (promotes `test_harness/trace.rs` to a directory module
`trace/mod.rs` + `trace/tests.rs`; harness source unchanged):
- take (`DictArray`) over a chunked array — no reduce rule fires;
execution canonicalizes the chunked values chunk-by-chunk before the
dict take kernel runs.
- filter over a struct with complex children (dict-of-strings + chunked
fields) — `FilterStructRule` pushes the filter into each field,
`FilterReduceAdaptor(Dict)` rewrites the dict field at optimize time.
- compare (`Binary` Eq vs constant) over a dict —
`DictionaryScalarFnValuesPushDownRule` reduces the compare into the
dictionary values.
- like over a dict-of-strings — `LikeReduceAdaptor(Dict)` reduces into
the dictionary values.

**vortex-runend** (new `trace_tests.rs`, `insta` added as
dev-dependency):
- compare vs constant reduces via `RunEndScalarFnRule` at optimize time;
filter and take execute via the
`FilterExecuteAdaptor`/`TakeExecuteAdaptor` parent kernels.

**vortex-btrblocks** (new `trace_tests.rs`; `insta`, `tpchgen`,
`tpchgen-arrow`, `arrow-array` added as dev-dependencies): generates
TPC-H lineitem (SF 0.001, 4096 rows, deterministic — tpchgen and the
compressor's sampling seed are both fixed), compresses it with
`BtrBlocksCompressor`, and traces TPC-H-style scan predicates over the
resulting encodings:
- `l_shipdate >= const` over `ext(date) → for → bitpacked` — extension
compare kernel at execution time, with
`CastReduceAdaptor(FoR)/(BitPacked)` reductions inside the arrow
fallback.
- `l_quantity < const` over `decimal_byte_parts → dict → bitpacked` —
the decimal_byte_parts compare kernel pushes into the byte-parts
dictionary, where `DictionaryScalarFnValuesPushDownRule` reduces the
compare to the 50 dictionary values before decode.
- `l_shipmode = const` over dict-of-FSST — dict pushdown at optimize
time, FSST compare kernel + dict decode at execution time.
- `l_comment LIKE` over FSST — the FSST like kernel matches in
compressed space.
- filter over a struct of compressed columns — `FilterStructRule` plus
per-encoding pushdown via `DecimalBytePartsFilterPushDownRule`,
`ExtensionFilterPushDownRule`, `FoRFilterPushDownRule`, and
`FilterReduceAdaptor(Dict)`, leaving execution a no-op.
- take over a struct of compressed columns — `TakeReduceAdaptor(Struct)`
absorbs the take entirely at optimize time.

Each btrblocks test also asserts the canonical result matches running
the same operation over the uncompressed column. A 1MiB TPC-H text pool
replaces the spec-default 300MiB one, cutting per-test setup from ~9s to
~0.5s without changing the traces.

## Testing

This PR is tests-only; no production code changes.

- `cargo nextest run -p vortex-array` — 2961 passed (includes the 8
trace tests, run in parallel to confirm the thread-local recorder is
deterministic).
- `cargo nextest run -p vortex-runend` — 61 passed.
- `cargo nextest run -p vortex-btrblocks` — 43 passed.
- `cargo clippy --all-targets` on the three touched crates — clean.
- `cargo +nightly fmt --all` and `git diff --check` — clean.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_01RMBcCiwpC3dbGLXRbK7UuR

---
_Generated by [Claude
Code](https://claude.ai/code/session_01RMBcCiwpC3dbGLXRbK7UuR)_

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
AdamGS added 14 commits July 30, 2026 16:01
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
robert3005 pushed a commit that referenced this pull request Jul 30, 2026
…mpressed arrays (#8828)

Stacked on #7814 (the `trace_op` execution/optimization tracing
harness).

Builds out trace-test coverage for how take/filter/compare/like reduce
and execute over complex arrays, using the harness from the base PR:

**vortex-array** (promotes `test_harness/trace.rs` to a directory module
`trace/mod.rs` + `trace/tests.rs`; harness source unchanged):
- take (`DictArray`) over a chunked array — no reduce rule fires;
execution canonicalizes the chunked values chunk-by-chunk before the
dict take kernel runs.
- filter over a struct with complex children (dict-of-strings + chunked
fields) — `FilterStructRule` pushes the filter into each field,
`FilterReduceAdaptor(Dict)` rewrites the dict field at optimize time.
- compare (`Binary` Eq vs constant) over a dict —
`DictionaryScalarFnValuesPushDownRule` reduces the compare into the
dictionary values.
- like over a dict-of-strings — `LikeReduceAdaptor(Dict)` reduces into
the dictionary values.

**vortex-runend** (new `trace_tests.rs`, `insta` added as
dev-dependency):
- compare vs constant reduces via `RunEndScalarFnRule` at optimize time;
filter and take execute via the
`FilterExecuteAdaptor`/`TakeExecuteAdaptor` parent kernels.

**vortex-btrblocks** (new `trace_tests.rs`; `insta`, `tpchgen`,
`tpchgen-arrow`, `arrow-array` added as dev-dependencies): generates
TPC-H lineitem (SF 0.001, 4096 rows, deterministic — tpchgen and the
compressor's sampling seed are both fixed), compresses it with
`BtrBlocksCompressor`, and traces TPC-H-style scan predicates over the
resulting encodings:
- `l_shipdate >= const` over `ext(date) → for → bitpacked` — extension
compare kernel at execution time, with
`CastReduceAdaptor(FoR)/(BitPacked)` reductions inside the arrow
fallback.
- `l_quantity < const` over `decimal_byte_parts → dict → bitpacked` —
the decimal_byte_parts compare kernel pushes into the byte-parts
dictionary, where `DictionaryScalarFnValuesPushDownRule` reduces the
compare to the 50 dictionary values before decode.
- `l_shipmode = const` over dict-of-FSST — dict pushdown at optimize
time, FSST compare kernel + dict decode at execution time.
- `l_comment LIKE` over FSST — the FSST like kernel matches in
compressed space.
- filter over a struct of compressed columns — `FilterStructRule` plus
per-encoding pushdown via `DecimalBytePartsFilterPushDownRule`,
`ExtensionFilterPushDownRule`, `FoRFilterPushDownRule`, and
`FilterReduceAdaptor(Dict)`, leaving execution a no-op.
- take over a struct of compressed columns — `TakeReduceAdaptor(Struct)`
absorbs the take entirely at optimize time.

Each btrblocks test also asserts the canonical result matches running
the same operation over the uncompressed column. A 1MiB TPC-H text pool
replaces the spec-default 300MiB one, cutting per-test setup from ~9s to
~0.5s without changing the traces.

This PR is tests-only; no production code changes.

- `cargo nextest run -p vortex-array` — 2961 passed (includes the 8
trace tests, run in parallel to confirm the thread-local recorder is
deterministic).
- `cargo nextest run -p vortex-runend` — 61 passed.
- `cargo nextest run -p vortex-btrblocks` — 43 passed.
- `cargo clippy --all-targets` on the three touched crates — clean.
- `cargo +nightly fmt --all` and `git diff --check` — clean.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_01RMBcCiwpC3dbGLXRbK7UuR

---
_Generated by [Claude
Code](https://claude.ai/code/session_01RMBcCiwpC3dbGLXRbK7UuR)_

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
@robert3005
robert3005 force-pushed the adamg/execution-tests branch from 541c583 to 4a18b84 Compare July 30, 2026 15:25
…mpressed arrays (#8828)

Stacked on #7814 (the `trace_op` execution/optimization tracing
harness).

Builds out trace-test coverage for how take/filter/compare/like reduce
and execute over complex arrays, using the harness from the base PR:

**vortex-array** (promotes `test_harness/trace.rs` to a directory module
`trace/mod.rs` + `trace/tests.rs`; harness source unchanged):
- take (`DictArray`) over a chunked array — no reduce rule fires;
execution canonicalizes the chunked values chunk-by-chunk before the
dict take kernel runs.
- filter over a struct with complex children (dict-of-strings + chunked
fields) — `FilterStructRule` pushes the filter into each field,
`FilterReduceAdaptor(Dict)` rewrites the dict field at optimize time.
- compare (`Binary` Eq vs constant) over a dict —
`DictionaryScalarFnValuesPushDownRule` reduces the compare into the
dictionary values.
- like over a dict-of-strings — `LikeReduceAdaptor(Dict)` reduces into
the dictionary values.

**vortex-runend** (new `trace_tests.rs`, `insta` added as
dev-dependency):
- compare vs constant reduces via `RunEndScalarFnRule` at optimize time;
filter and take execute via the
`FilterExecuteAdaptor`/`TakeExecuteAdaptor` parent kernels.

**vortex-btrblocks** (new `trace_tests.rs`; `insta`, `tpchgen`,
`tpchgen-arrow`, `arrow-array` added as dev-dependencies): generates
TPC-H lineitem (SF 0.001, 4096 rows, deterministic — tpchgen and the
compressor's sampling seed are both fixed), compresses it with
`BtrBlocksCompressor`, and traces TPC-H-style scan predicates over the
resulting encodings:
- `l_shipdate >= const` over `ext(date) → for → bitpacked` — extension
compare kernel at execution time, with
`CastReduceAdaptor(FoR)/(BitPacked)` reductions inside the arrow
fallback.
- `l_quantity < const` over `decimal_byte_parts → dict → bitpacked` —
the decimal_byte_parts compare kernel pushes into the byte-parts
dictionary, where `DictionaryScalarFnValuesPushDownRule` reduces the
compare to the 50 dictionary values before decode.
- `l_shipmode = const` over dict-of-FSST — dict pushdown at optimize
time, FSST compare kernel + dict decode at execution time.
- `l_comment LIKE` over FSST — the FSST like kernel matches in
compressed space.
- filter over a struct of compressed columns — `FilterStructRule` plus
per-encoding pushdown via `DecimalBytePartsFilterPushDownRule`,
`ExtensionFilterPushDownRule`, `FoRFilterPushDownRule`, and
`FilterReduceAdaptor(Dict)`, leaving execution a no-op.
- take over a struct of compressed columns — `TakeReduceAdaptor(Struct)`
absorbs the take entirely at optimize time.

Each btrblocks test also asserts the canonical result matches running
the same operation over the uncompressed column. A 1MiB TPC-H text pool
replaces the spec-default 300MiB one, cutting per-test setup from ~9s to
~0.5s without changing the traces.

This PR is tests-only; no production code changes.

- `cargo nextest run -p vortex-array` — 2961 passed (includes the 8
trace tests, run in parallel to confirm the thread-local recorder is
deterministic).
- `cargo nextest run -p vortex-runend` — 61 passed.
- `cargo nextest run -p vortex-btrblocks` — 43 passed.
- `cargo clippy --all-targets` on the three touched crates — clean.
- `cargo +nightly fmt --all` and `git diff --check` — clean.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_01RMBcCiwpC3dbGLXRbK7UuR

---
_Generated by [Claude
Code](https://claude.ai/code/session_01RMBcCiwpC3dbGLXRbK7UuR)_

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
@robert3005
robert3005 force-pushed the adamg/execution-tests branch from 4a18b84 to 8ead1e8 Compare July 30, 2026 21:24
@robert3005
robert3005 dismissed stale reviews from connortsui20 and themself July 30, 2026 21:25

addressed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/feature A new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants